# Path: src/instawow/utils.py
# class StrEnum(str, enum.Enum):
#     pass


from enum import Enum
from typing import TypeVar
from typing_extensions import Protocol
from .utils import StrEnum
from __future__ import annotations




_TEnum = TypeVar('_TEnum', bound=Enum)


class _FlavourKeyedEnum(Protocol[_TEnum]):
    retail: _TEnum
    vanilla_classic: _TEnum
    burning_crusade_classic: _TEnum

    def __getitem__(self, __key: str) -> _TEnum:
        ...



# Path: src/instawow/utils.py
# class StrEnum(str, enum.Enum):
#     pass


# Path: src/instawow/common.py
from enum import Enum
from typing import TypeVar
from typing_extensions import Protocol
from .utils import StrEnum

from __future__ import annotations




_TEnum = TypeVar('_TEnum', bound=Enum)


class _FlavourKeyedEnum(Protocol[_TEnum]):
    retail: _TEnum
    vanilla_classic: _TEnum
    burning_crusade_classic: _TEnum

    def __getitem__(self, __key: str) -> _TEnum:
        ...



class Flavour(StrEnum):