from typing import Any, Literal
from sympy.external.gmpy import GROUND_TYPES

def dup_trial_division(f, factors, K) -> list[Any]:
    ...

def dmp_trial_division(f, factors, u, K) -> list[Any]:
    ...

def dup_zz_mignotte_bound(f, K):
    ...

def dmp_zz_mignotte_bound(f, u, K):
    ...

def dup_zz_hensel_step(m, f, g, h, s, t, K) -> tuple[Any, Any, Any, Any]:
    ...

def dup_zz_hensel_lift(p, f, f_list, l, K) -> list[Any]:
    ...

def dup_zz_zassenhaus(f, K) -> list[Any]:
    ...

def dup_zz_irreducible_p(f, K) -> Literal[True] | None:
    ...

def dup_cyclotomic_p(f, K, irreducible=...) -> bool:
    ...

def dup_zz_cyclotomic_poly(n, K) -> list[Any]:
    ...

def dup_zz_cyclotomic_factor(f, K) -> list[list[Any]] | list[Any] | None:
    ...

def dup_zz_factor_sqf(f, K) -> tuple[Any, list[Any]] | tuple[Any, list[list[Any] | Any]]:
    ...

def dup_zz_factor(f, K) -> tuple[Any, list[Any]] | tuple[Any, list[tuple[list[Any] | Any, Literal[1]]]]:
    ...

def dmp_zz_wang_non_divisors(E, cs, ct, K) -> list[Any] | None:
    ...

def dmp_zz_wang_test_points(f, T, ct, A, u, K) -> tuple[Any, list[Any] | Any, list[Any | list[list[Any]] | list[Any]]]:
    ...

def dmp_zz_wang_lead_coeffs(f, T, cs, E, H, A, u, K) -> tuple[Any, list[Any], list[Any]] | tuple[list[Any], list[Any], list[Any]]:
    ...

def dup_zz_diophantine(F, m, p, K) -> list[list[Any] | Any]:
    ...

def dmp_zz_diophantine(F, c, A, d, p, u, K) -> list[list[Any]] | list[Any | list[list[Any]]]:
    ...

def dmp_zz_wang_hensel_lifting(f, H, LC, A, p, u, K) -> list[Any]:
    ...

def dmp_zz_wang(f, u, K, mod=..., seed=...) -> list[Any]:
    ...

def dmp_zz_factor(f, u, K) -> tuple[Any, list[Any]] | tuple[Any, list[tuple[list[Any] | Any, Literal[1]]]]:
    ...

def dup_qq_i_factor(f, K0) -> tuple[Any, list[tuple[Any, Any]]]:
    ...

def dup_zz_i_factor(f, K0) -> tuple[Any, list[Any]]:
    ...

def dmp_qq_i_factor(f, u, K0) -> tuple[Any, list[tuple[Any | list[list[Any]], Any]]]:
    ...

def dmp_zz_i_factor(f, u, K0) -> tuple[Any, list[Any]]:
    ...

def dup_ext_factor(f, K) -> tuple[Any, list[Any]] | tuple[Any, list[tuple[Any | list[Any], Literal[1]]]] | tuple[Any, list[tuple[Any | list[Any], Any | int]]]:
    ...

def dmp_ext_factor(f, u, K) -> tuple[Any, list[Any]] | tuple[Any, list[tuple[Any | list[Any], Literal[1]]]] | tuple[Any, list[tuple[Any | list[Any], Any | int]]]:
    ...

def dup_gf_factor(f, K) -> tuple[Any, list[Any]]:
    ...

def dmp_gf_factor(f, u, K):
    ...

def dup_factor_list(f, K0) -> tuple[Any, list[Any]]:
    ...

def dup_factor_list_include(f, K) -> list[tuple[Any, Literal[1]]]:
    ...

def dmp_factor_list(f, u, K0) -> tuple[Any, list[Any]]:
    ...

def dmp_factor_list_include(f, u, K) -> list[tuple[Any, Literal[1]]] | list[tuple[list[list[Any]] | Any | list[Any], Literal[1]]]:
    ...

def dup_irreducible_p(f, K) -> bool:
    ...

def dmp_irreducible_p(f, u, K) -> bool:
    ...

