from typing import Any, Literal

from sympy.polys.polymatrix import PolyMatrix
from sympy.series.order import Order

zeros = ...
eye = ...

def prde_normal_denom(fa, fd, G, DE) -> tuple[Any, tuple[Any, Any], list[Any], Any]: ...
def real_imag(ba, bd, gen) -> tuple[Any, Any, Any]: ...
def prde_special_denom(a, ba, bd, G, DE, case=...) -> tuple[Any, Any, Any, Any] | tuple[Any, Any, list[Any], Any]: ...
def prde_linear_constraints(a, b, G, DE) -> tuple[Any, PolyMatrix]: ...
def poly_linear_constraints(p, d) -> tuple[Any, PolyMatrix]: ...
def constant_system(A, u, DE) -> tuple[Any, Any]: ...
def prde_spde(a, b, Q, n, DE) -> tuple[Any, Any, list[Any], list[Any], Any]: ...
def prde_no_cancel_b_large(b, Q, n, DE) -> tuple[list[Any], Any]: ...
def prde_no_cancel_b_small(b, Q, n, DE) -> tuple[list[Any], Any] | tuple[list[Any], PolyMatrix | Any]: ...
def prde_cancel_liouvillian(b, Q, n, DE) -> tuple[list[Any], Any]: ...
def param_poly_rischDE(
    a, b, q, n, DE
) -> tuple[list[Any], PolyMatrix] | tuple[list[Any], Any] | tuple[list[Any], PolyMatrix | Any]: ...
def param_rischDE(fa, fd, G, DE) -> tuple[list[Any], PolyMatrix]: ...
def limited_integrate_reduce(fa, fd, G, DE) -> tuple[Any, Any, Any, Any, Any, list[Any]]: ...
def limited_integrate(fa, fd, G, DE) -> tuple[tuple[Any, Any], list[Any]] | None: ...
def parametric_log_deriv_heu(fa, fd, wa, wd, DE, c1=...) -> tuple[Any, Any, Any | Order] | None: ...
def parametric_log_deriv(fa, fd, wa, wd, DE) -> tuple[Any, Any, Any | Order] | None: ...
def is_deriv_k(fa, fd, DE) -> tuple[list[tuple[Any, Any]], Any | Order, Any] | None: ...
def is_log_deriv_k_t_radical(fa, fd, DE, Df=...) -> tuple[list[tuple[Any, Any]], Any | Order, Any | Literal[0], Any] | None: ...
def is_log_deriv_k_t_radical_in_field(
    fa, fd, DE, case=..., z=...
) -> tuple[Any | int, Any | Order] | tuple[Any | int, Any] | None: ...
