from __future__ import annotations

from .bootstrap import AppliedReplayBootstrap, ReplayBootstrapError, apply_replay_bootstrap
from .codec import ReplayCodecError, dump_replay, dump_replay_file, load_replay, load_replay_file
from .input_codec import pack_player_input, pack_tick_inputs, unpack_player_input, unpack_tick_inputs
from .recorder import ReplayRecorder
from .types import (
    FIRE_DOWN_FLAG,
    FIRE_PRESSED_FLAG,
    MOVE_BACKWARD_FLAG,
    MOVE_FORWARD_FLAG,
    MOVE_KEYS_PRESENT_FLAG,
    RELOAD_PRESSED_FLAG,
    TURN_LEFT_FLAG,
    TURN_RIGHT_FLAG,
    PackedPlayerInput,
    PackedTickInputs,
    PerkMenuOpenEvent,
    PerkPickEvent,
    Replay,
    ReplayHeader,
    ReplayStatusSnapshot,
    UnknownEvent,
    pack_input_flags,
    unpack_input_flags,
    unpack_input_move_key_flags,
    unpack_packed_player_input,
)
from .versioning import ReplayGameVersionWarning, warn_on_game_version_mismatch

__all__ = [
    "FIRE_DOWN_FLAG",
    "FIRE_PRESSED_FLAG",
    "MOVE_BACKWARD_FLAG",
    "MOVE_FORWARD_FLAG",
    "MOVE_KEYS_PRESENT_FLAG",
    "RELOAD_PRESSED_FLAG",
    "TURN_LEFT_FLAG",
    "TURN_RIGHT_FLAG",
    "PackedPlayerInput",
    "PackedTickInputs",
    "PerkMenuOpenEvent",
    "PerkPickEvent",
    "Replay",
    "ReplayCodecError",
    "AppliedReplayBootstrap",
    "ReplayBootstrapError",
    "ReplayHeader",
    "ReplayRecorder",
    "ReplayStatusSnapshot",
    "UnknownEvent",
    "ReplayGameVersionWarning",
    "dump_replay",
    "dump_replay_file",
    "load_replay",
    "load_replay_file",
    "pack_player_input",
    "apply_replay_bootstrap",
    "pack_input_flags",
    "pack_tick_inputs",
    "unpack_player_input",
    "unpack_packed_player_input",
    "unpack_input_flags",
    "unpack_input_move_key_flags",
    "unpack_tick_inputs",
    "warn_on_game_version_mismatch",
]
