from typing import Any, Callable, Dict, List, Tuple, Union

def given(pattern: Union[str, Callable[..., Any]]) -> Callable[..., Any]: ...
def when(pattern: Union[str, Callable[..., Any]]) -> Callable[..., Any]: ...
def then(pattern: Union[str, Callable[..., Any]]) -> Callable[..., Any]: ...
def step(pattern: Union[str, Callable[..., Any]]) -> Callable[..., Any]: ...
