from collections.abc import Callable
from typing import TypeVar

from sympy.core.basic import Basic
from sympy.core.symbol import Dummy
from sympy.functions.elementary.piecewise import Piecewise

_CallableT = TypeVar("_CallableT", bound=Callable)

z = ...

def timeit(func: _CallableT) -> _CallableT: ...

class _CoeffExpValueError(ValueError): ...

_dummies: dict[tuple[str, str], Dummy] = ...
_lookup_table = ...

def meijerint_indefinite(f, x) -> Piecewise | Basic | None: ...
@timeit
def meijerint_definite(f, x, a, b): ...
def meijerint_inversion(f, x, t) -> Piecewise | None: ...
