from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class PacketEnvelope(_message.Message):
    __slots__ = ("sequence_number", "timestamp_ms", "nonce", "encrypted_payload", "auth_tag")
    SEQUENCE_NUMBER_FIELD_NUMBER: _ClassVar[int]
    TIMESTAMP_MS_FIELD_NUMBER: _ClassVar[int]
    NONCE_FIELD_NUMBER: _ClassVar[int]
    ENCRYPTED_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
    AUTH_TAG_FIELD_NUMBER: _ClassVar[int]
    sequence_number: int
    timestamp_ms: int
    nonce: bytes
    encrypted_payload: bytes
    auth_tag: bytes
    def __init__(self, sequence_number: _Optional[int] = ..., timestamp_ms: _Optional[int] = ..., nonce: _Optional[bytes] = ..., encrypted_payload: _Optional[bytes] = ..., auth_tag: _Optional[bytes] = ...) -> None: ...

class TouchBiometrics(_message.Message):
    __slots__ = ("major_radius", "force", "micro_tremor_hz", "trajectory_curvature", "device_type", "app_attest_token")
    MAJOR_RADIUS_FIELD_NUMBER: _ClassVar[int]
    FORCE_FIELD_NUMBER: _ClassVar[int]
    MICRO_TREMOR_HZ_FIELD_NUMBER: _ClassVar[int]
    TRAJECTORY_CURVATURE_FIELD_NUMBER: _ClassVar[int]
    DEVICE_TYPE_FIELD_NUMBER: _ClassVar[int]
    APP_ATTEST_TOKEN_FIELD_NUMBER: _ClassVar[int]
    major_radius: float
    force: float
    micro_tremor_hz: float
    trajectory_curvature: float
    device_type: int
    app_attest_token: bytes
    def __init__(self, major_radius: _Optional[float] = ..., force: _Optional[float] = ..., micro_tremor_hz: _Optional[float] = ..., trajectory_curvature: _Optional[float] = ..., device_type: _Optional[int] = ..., app_attest_token: _Optional[bytes] = ...) -> None: ...

class PlayerMoveInput(_message.Message):
    __slots__ = ("entity_id", "dir_x", "dir_y", "input_sequence", "biometrics")
    ENTITY_ID_FIELD_NUMBER: _ClassVar[int]
    DIR_X_FIELD_NUMBER: _ClassVar[int]
    DIR_Y_FIELD_NUMBER: _ClassVar[int]
    INPUT_SEQUENCE_FIELD_NUMBER: _ClassVar[int]
    BIOMETRICS_FIELD_NUMBER: _ClassVar[int]
    entity_id: int
    dir_x: float
    dir_y: float
    input_sequence: int
    biometrics: TouchBiometrics
    def __init__(self, entity_id: _Optional[int] = ..., dir_x: _Optional[float] = ..., dir_y: _Optional[float] = ..., input_sequence: _Optional[int] = ..., biometrics: _Optional[_Union[TouchBiometrics, _Mapping]] = ...) -> None: ...

class EntitySnapshot(_message.Message):
    __slots__ = ("entity_id", "pos_x", "pos_y", "velocity_x", "velocity_y", "current_hp", "max_hp", "animation_state", "last_processed_input_seq")
    ENTITY_ID_FIELD_NUMBER: _ClassVar[int]
    POS_X_FIELD_NUMBER: _ClassVar[int]
    POS_Y_FIELD_NUMBER: _ClassVar[int]
    VELOCITY_X_FIELD_NUMBER: _ClassVar[int]
    VELOCITY_Y_FIELD_NUMBER: _ClassVar[int]
    CURRENT_HP_FIELD_NUMBER: _ClassVar[int]
    MAX_HP_FIELD_NUMBER: _ClassVar[int]
    ANIMATION_STATE_FIELD_NUMBER: _ClassVar[int]
    LAST_PROCESSED_INPUT_SEQ_FIELD_NUMBER: _ClassVar[int]
    entity_id: int
    pos_x: float
    pos_y: float
    velocity_x: float
    velocity_y: float
    current_hp: int
    max_hp: int
    animation_state: int
    last_processed_input_seq: int
    def __init__(self, entity_id: _Optional[int] = ..., pos_x: _Optional[float] = ..., pos_y: _Optional[float] = ..., velocity_x: _Optional[float] = ..., velocity_y: _Optional[float] = ..., current_hp: _Optional[int] = ..., max_hp: _Optional[int] = ..., animation_state: _Optional[int] = ..., last_processed_input_seq: _Optional[int] = ...) -> None: ...

class WorldStateSync(_message.Message):
    __slots__ = ("server_tick", "entities")
    SERVER_TICK_FIELD_NUMBER: _ClassVar[int]
    ENTITIES_FIELD_NUMBER: _ClassVar[int]
    server_tick: int
    entities: _containers.RepeatedCompositeFieldContainer[EntitySnapshot]
    def __init__(self, server_tick: _Optional[int] = ..., entities: _Optional[_Iterable[_Union[EntitySnapshot, _Mapping]]] = ...) -> None: ...
