from collections.abc import Callable
from typing import Any, TypeVar

_StepFunc = TypeVar("_StepFunc", bound=Callable[..., object])

StepDecorator = Callable[[_StepFunc], _StepFunc]

def given(pattern: str, *args: Any, **kwargs: Any) -> StepDecorator: ...
def when(pattern: str, *args: Any, **kwargs: Any) -> StepDecorator: ...
def then(pattern: str, *args: Any, **kwargs: Any) -> StepDecorator: ...
