from typing import Any

from sympy.polys.domains.characteristiczero import CharacteristicZero
from sympy.polys.domains.field import Field
from sympy.polys.domains.simpledomain import SimpleDomain
from sympy.polys.polyclasses import ANP
from sympy.series import Order
from sympy.utilities import public

@public
class AlgebraicField(Field, CharacteristicZero, SimpleDomain):
    dtype = ANP
    is_Algebraic = ...
    is_Numerical = ...
    has_assoc_Ring = ...
    has_assoc_Field = ...
    def __init__(self, dom, *ext, alias=...) -> None: ...
    def new(self, element) -> dtype: ...
    def __hash__(self) -> int: ...
    def __eq__(self, other) -> bool: ...
    def algebraic_field(self, *extension, alias=...) -> Any: ...
    def to_alg_num(self, a) -> Any: ...
    def to_sympy(self, a) -> Order: ...
    def from_sympy(self, a): ...
    def from_ZZ(K1, a, K0): ...
    def from_ZZ_python(K1, a, K0): ...
    def from_QQ(K1, a, K0): ...
    def from_QQ_python(K1, a, K0): ...
    def from_ZZ_gmpy(K1, a, K0): ...
    def from_QQ_gmpy(K1, a, K0): ...
    def from_RealField(K1, a, K0): ...
    def get_ring(self): ...
    def is_positive(self, a): ...
    def is_negative(self, a): ...
    def is_nonpositive(self, a): ...
    def is_nonnegative(self, a): ...
    def numer(self, a): ...
    def denom(self, a) -> ANP: ...
    def from_AlgebraicField(K1, a, K0): ...
    def from_GaussianIntegerRing(K1, a, K0): ...
    def from_GaussianRationalField(K1, a, K0): ...
    def maximal_order(self) -> Any | None: ...
    def integral_basis(self, fmt=...) -> list[Any | Order] | list[Any] | list[dtype]: ...
    def discriminant(self) -> Any | None: ...
    def primes_above(self, p) -> Any: ...
    def galois_group(self, by_name=..., max_tries=..., randomize=...) -> Any: ...
