from typing import Any
from typing_extensions import Self

from sympy.core.basic import Basic

class EPath:
    __slots__ = ...
    def __new__(cls, path) -> EPath | Self: ...
    def apply(self, expr, func, args=..., kwargs=...) -> Basic: ...
    def select(self, expr) -> list[Any]: ...

def epath(path, expr=..., func=..., args=..., kwargs=...) -> EPath | list[Any] | Basic: ...
