from typing import Any, Literal

from sympy.polys.domains.characteristiczero import CharacteristicZero
from sympy.polys.domains.field import Field
from sympy.polys.domains.simpledomain import SimpleDomain
from sympy.utilities import public

@public
class ComplexField(Field, CharacteristicZero, SimpleDomain):
    rep = ...
    is_CC = ...
    is_Exact = ...
    is_Numerical = ...
    has_assoc_Ring = ...
    has_assoc_Field = ...
    _default_precision = ...
    @property
    def has_default_precision(self) -> Any: ...
    @property
    def precision(self) -> Any: ...
    @property
    def dps(self) -> Any: ...
    @property
    def tolerance(self) -> Any: ...
    def __init__(self, prec=..., dps=..., tol=...) -> None: ...
    def __eq__(self, other) -> bool: ...
    def __hash__(self) -> int: ...
    def to_sympy(self, element): ...
    def from_sympy(self, expr) -> Any: ...
    def from_ZZ(self, element, base) -> Any: ...
    def from_QQ(self, element, base) -> Any: ...
    def from_ZZ_python(self, element, base) -> Any: ...
    def from_QQ_python(self, element, base): ...
    def from_ZZ_gmpy(self, element, base) -> Any: ...
    def from_QQ_gmpy(self, element, base) -> Any: ...
    def from_GaussianIntegerRing(self, element, base) -> Any: ...
    def from_GaussianRationalField(self, element, base) -> Any: ...
    def from_AlgebraicField(self, element, base) -> Any: ...
    def from_RealField(self, element, base) -> Any: ...
    def from_ComplexField(self, element, base) -> Any: ...
    def get_ring(self): ...
    def get_exact(self): ...
    def is_negative(self, element) -> Literal[False]: ...
    def is_positive(self, element) -> Literal[False]: ...
    def is_nonnegative(self, element) -> Literal[False]: ...
    def is_nonpositive(self, element) -> Literal[False]: ...
    def gcd(self, a, b) -> Any: ...
    def lcm(self, a, b): ...
    def almosteq(self, a, b, tolerance=...) -> Any: ...

CC = ...
