# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/01_atyp.ipynb.

# %% auto 0
__all__ = ['T', 'O', 'P', 'Ts', 'CoordFormat', 'SliceFormat', 'SliceFormats', 'THWCFormat', 'TCHWFormat', 'ChannelsFormats',
           'Channels']

# %% ../nbs/01_atyp.ipynb 6
#| export


# %% ../nbs/01_atyp.ipynb 8
from typing import Union, Literal, TypeVar, ParamSpec, TypeAlias, TypeVarTuple, ForwardRef

# %% ../nbs/01_atyp.ipynb 10
#| export


# %% ../nbs/01_atyp.ipynb 12
from quac import int4

# %% ../nbs/01_atyp.ipynb 14
#| export


# %% ../nbs/01_atyp.ipynb 16
T = TypeVar('T')
'''Type variable for generic types''';

O = TypeVar('O')
'''Type variable for generic types reprenesting "other"''';

P = ParamSpec('P')
'''Parameter specification type variable, capturing the type of function parameters.''';

Ts = TypeVarTuple('Ts')

# %% ../nbs/01_atyp.ipynb 19
CoordFormat: TypeAlias = Literal['coord'];

SliceFormat: TypeAlias = Literal['slice'];

SliceFormats: TypeAlias = Union[CoordFormat, SliceFormat]


THWCFormat: TypeAlias = Literal['thwc'];
'''The time, height, width, and channels axis order.''';

TCHWFormat: TypeAlias = Literal['tchw'];
'''The time, channels, height, and width axis order.''';

ChannelsFormats: TypeAlias = Union[THWCFormat, TCHWFormat]

Channels: TypeAlias = Union[ChannelsFormats, str, tuple[int, int, int, int], int4, ForwardRef('Channels', module='etrc.enum', is_class=True)]
'''`Channels | 'thcw' | 'tchw' | (0, 1, 2, 3) | (0, 3, 1, 2)`''';

# %% ../nbs/01_atyp.ipynb 21
#| export
