from typing import Any, Literal
from typing_extensions import Self

from sympy.core.expr import Expr

class Prefix(Expr):
    _op_priority = ...
    is_commutative = ...
    def __new__(cls, name, abbrev, exponent, base=..., latex_repr=...) -> Self: ...
    @property
    def name(self): ...
    @property
    def abbrev(self): ...
    @property
    def scale_factor(self): ...
    @property
    def base(self): ...
    def __mul__(self, other) -> Prefix | Literal[1]: ...
    def __truediv__(self, other) -> Prefix | Literal[1]: ...
    def __rtruediv__(self, other) -> Prefix: ...

def prefix_unit(unit, prefixes) -> list[Any]: ...

yotta = ...
zetta = ...
exa = ...
peta = ...
tera = ...
giga = ...
mega = ...
kilo = ...
hecto = ...
deca = ...
deci = ...
centi = ...
milli = ...
micro = ...
nano = ...
pico = ...
femto = ...
atto = ...
zepto = ...
yocto = ...
PREFIXES = ...
kibi = ...
mebi = ...
gibi = ...
tebi = ...
pebi = ...
exbi = ...
BIN_PREFIXES = ...
