from typing import Any

from sympy.polys.polyutils import IntegerPowerable
from sympy.utilities.decorator import public

class PrimeIdeal(IntegerPowerable):
    def __init__(self, ZK, p, alpha, f, e=...) -> None: ...
    @property
    def is_inert(self): ...
    def repr(self, field_gen=..., just_gens=...) -> str: ...
    def as_submodule(self): ...
    def __eq__(self, other) -> bool: ...
    def __add__(self, other): ...

    __radd__ = ...
    def __mul__(self, other): ...

    __rmul__ = ...
    def test_factor(self): ...
    def valuation(self, I) -> Any: ...
    def reduce_element(self, elt): ...
    def reduce_ANP(self, a): ...
    def reduce_alg_num(self, a): ...

@public
def prime_valuation(I, P) -> int: ...
@public
def prime_decomp(p, T=..., ZK=..., dK=..., radical=...) -> list[PrimeIdeal] | list[Any]: ...
