from functools import _Wrapped
from typing import Any

from sympy.printing.str import StrPrinter

class requires:
    def __init__(self, **kwargs) -> None: ...
    def __call__(self, method) -> _Wrapped[..., Any, ..., Any]: ...

class AssignmentError(Exception): ...

class CodePrinter(StrPrinter):
    _operators = ...
    _default_settings: dict[str, Any] = ...
    _rewriteable_functions = ...
    def __init__(self, settings=...) -> None: ...
    def doprint(self, expr, assign_to=...) -> str | tuple[set[tuple[Any, str]], set[Any], str]: ...

    _print_Expr = ...
    _print_Heaviside = ...
    _print_Basic = ...
    _print_ComplexInfinity = ...
    _print_Derivative = ...
    _print_ExprCondPair = ...
    _print_GeometryEntity = ...
    _print_Infinity = ...
    _print_Integral = ...
    _print_Interval = ...
    _print_AccumulationBounds = ...
    _print_Limit = ...
    _print_MatrixBase = ...
    _print_DeferredVector = ...
    _print_NaN = ...
    _print_NegativeInfinity = ...
    _print_Order = ...
    _print_RootOf = ...
    _print_RootsOf = ...
    _print_RootSum = ...
    _print_Uniform = ...
    _print_Unit = ...
    _print_Wild = ...
    _print_WildFunction = ...
    _print_Relational = ...

def ccode(expr, assign_to=..., standard=..., **settings): ...
def print_ccode(expr, **settings) -> None: ...
def fcode(expr, assign_to=..., **settings) -> str | tuple[set[tuple[Any, str]], set[Any], str]: ...
def print_fcode(expr, **settings) -> None: ...
def cxxcode(expr, assign_to=..., standard=..., **settings): ...
