import typing as t

from ._base import BaseModel
from .abstract import (
    Ability,
    Berry,
    BerryFirmness,
    BerryFlavor,
    Characteristic,
    ContestEffect,
    ContestType,
    EggGroup,
    EncounterCondition,
    EncounterConditionValue,
    EncounterMethod,
    EvolutionChain,
    EvolutionTrigger,
    Gender,
    Generation,
    GrowthRate,
    Item,
    ItemAttribute,
    ItemCategory,
    ItemFlingEffect,
    ItemPocket,
    Location,
    LocationArea,
    LocationAreaEncounter,
    Machine,
    Move,
    MoveAilment,
    MoveBattleStyle,
    MoveCategory,
    MoveDamageClass,
    MoveLearnMethod,
    MoveTarget,
    Nature,
    PalParkArea,
    PokeathlonStat,
    Pokedex,
    Pokemon,
    PokemonColor,
    PokemonForm,
    PokemonHabitats,
    PokemonShape,
    PokemonSpecies,
    Region,
    Stat,
    SuperContestEffect,
    Type,
    Version,
    VersionGroup,
)

__all__: t.Tuple[str, ...] = (
    "BaseModel",
    "Berry",
    "BerryFirmness",
    "BerryFlavor",
    "ContestEffect",
    "ContestType",
    "SuperContestEffect",
    "EncounterCondition",
    "EncounterConditionValue",
    "EncounterMethod",
    "EvolutionChain",
    "EvolutionTrigger",
    "Generation",
    "Pokedex",
    "Version",
    "VersionGroup",
    "Item",
    "ItemAttribute",
    "ItemCategory",
    "ItemFlingEffect",
    "ItemPocket",
    "Location",
    "LocationArea",
    "PalParkArea",
    "Region",
    "Machine",
    "Move",
    "MoveAilment",
    "MoveBattleStyle",
    "MoveCategory",
    "MoveDamageClass",
    "MoveLearnMethod",
    "MoveTarget",
    "Ability",
    "Characteristic",
    "Pokemon",
    "PokemonSpecies",
    "PokemonForm",
    "Nature",
    "Type",
    "Gender",
    "GrowthRate",
    "EggGroup",
    "LocationAreaEncounter",
    "PokemonColor",
    "PokeathlonStat",
    "PokemonHabitats",
    "PokemonShape",
    "Stat",
)
