from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
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 HideoutTheme(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    HIDEOUT_THEME_UNSPECIFIED: _ClassVar[HideoutTheme]
    ASTRAL_PEAK: _ClassVar[HideoutTheme]
    DRAGON_VALLEY: _ClassVar[HideoutTheme]
    BAMBOO_SHRINE: _ClassVar[HideoutTheme]
    LUNAR_SANCTUARY: _ClassVar[HideoutTheme]

class HideoutPortalType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    PORTAL_TYPE_UNSPECIFIED: _ClassVar[HideoutPortalType]
    MAP_DEVICE_PORTAL: _ClassVar[HideoutPortalType]
    WORLD_EXPLORATION_GATE: _ClassVar[HideoutPortalType]
    QUEST_BOUNTY_GATE: _ClassVar[HideoutPortalType]

class FacilityType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    FACILITY_UNSPECIFIED: _ClassVar[FacilityType]
    CONSIGNMENT_STASH_VAULT: _ClassVar[FacilityType]
    PRIMAL_FORGE_CAULDRON: _ClassVar[FacilityType]
    MERIDIAN_MEDITATION_MAT: _ClassVar[FacilityType]
    AGENT_ORB_ALTAR: _ClassVar[FacilityType]
    ASTRAL_MAP_DEVICE: _ClassVar[FacilityType]
HIDEOUT_THEME_UNSPECIFIED: HideoutTheme
ASTRAL_PEAK: HideoutTheme
DRAGON_VALLEY: HideoutTheme
BAMBOO_SHRINE: HideoutTheme
LUNAR_SANCTUARY: HideoutTheme
PORTAL_TYPE_UNSPECIFIED: HideoutPortalType
MAP_DEVICE_PORTAL: HideoutPortalType
WORLD_EXPLORATION_GATE: HideoutPortalType
QUEST_BOUNTY_GATE: HideoutPortalType
FACILITY_UNSPECIFIED: FacilityType
CONSIGNMENT_STASH_VAULT: FacilityType
PRIMAL_FORGE_CAULDRON: FacilityType
MERIDIAN_MEDITATION_MAT: FacilityType
AGENT_ORB_ALTAR: FacilityType
ASTRAL_MAP_DEVICE: FacilityType

class PortalInfo(_message.Message):
    __slots__ = ("portal_id", "portal_type", "destination_zone_id", "destination_name", "remaining_charges", "is_active", "pos_x", "pos_y", "pos_z", "visual_effect_color")
    PORTAL_ID_FIELD_NUMBER: _ClassVar[int]
    PORTAL_TYPE_FIELD_NUMBER: _ClassVar[int]
    DESTINATION_ZONE_ID_FIELD_NUMBER: _ClassVar[int]
    DESTINATION_NAME_FIELD_NUMBER: _ClassVar[int]
    REMAINING_CHARGES_FIELD_NUMBER: _ClassVar[int]
    IS_ACTIVE_FIELD_NUMBER: _ClassVar[int]
    POS_X_FIELD_NUMBER: _ClassVar[int]
    POS_Y_FIELD_NUMBER: _ClassVar[int]
    POS_Z_FIELD_NUMBER: _ClassVar[int]
    VISUAL_EFFECT_COLOR_FIELD_NUMBER: _ClassVar[int]
    portal_id: str
    portal_type: HideoutPortalType
    destination_zone_id: str
    destination_name: str
    remaining_charges: int
    is_active: bool
    pos_x: float
    pos_y: float
    pos_z: float
    visual_effect_color: str
    def __init__(self, portal_id: _Optional[str] = ..., portal_type: _Optional[_Union[HideoutPortalType, str]] = ..., destination_zone_id: _Optional[str] = ..., destination_name: _Optional[str] = ..., remaining_charges: _Optional[int] = ..., is_active: _Optional[bool] = ..., pos_x: _Optional[float] = ..., pos_y: _Optional[float] = ..., pos_z: _Optional[float] = ..., visual_effect_color: _Optional[str] = ...) -> None: ...

class AstralMapItem(_message.Message):
    __slots__ = ("map_item_id", "map_name", "tier", "item_quantity_bonus_pct", "item_rarity_bonus_pct", "monster_pack_size_pct", "map_affixes", "boss_name")
    MAP_ITEM_ID_FIELD_NUMBER: _ClassVar[int]
    MAP_NAME_FIELD_NUMBER: _ClassVar[int]
    TIER_FIELD_NUMBER: _ClassVar[int]
    ITEM_QUANTITY_BONUS_PCT_FIELD_NUMBER: _ClassVar[int]
    ITEM_RARITY_BONUS_PCT_FIELD_NUMBER: _ClassVar[int]
    MONSTER_PACK_SIZE_PCT_FIELD_NUMBER: _ClassVar[int]
    MAP_AFFIXES_FIELD_NUMBER: _ClassVar[int]
    BOSS_NAME_FIELD_NUMBER: _ClassVar[int]
    map_item_id: str
    map_name: str
    tier: int
    item_quantity_bonus_pct: int
    item_rarity_bonus_pct: int
    monster_pack_size_pct: int
    map_affixes: _containers.RepeatedScalarFieldContainer[str]
    boss_name: str
    def __init__(self, map_item_id: _Optional[str] = ..., map_name: _Optional[str] = ..., tier: _Optional[int] = ..., item_quantity_bonus_pct: _Optional[int] = ..., item_rarity_bonus_pct: _Optional[int] = ..., monster_pack_size_pct: _Optional[int] = ..., map_affixes: _Optional[_Iterable[str]] = ..., boss_name: _Optional[str] = ...) -> None: ...

class EnterHideoutRequest(_message.Message):
    __slots__ = ("player_id", "target_player_id")
    PLAYER_ID_FIELD_NUMBER: _ClassVar[int]
    TARGET_PLAYER_ID_FIELD_NUMBER: _ClassVar[int]
    player_id: str
    target_player_id: str
    def __init__(self, player_id: _Optional[str] = ..., target_player_id: _Optional[str] = ...) -> None: ...

class EnterHideoutResponse(_message.Message):
    __slots__ = ("success", "hideout_id", "theme", "spawn_x", "spawn_y", "active_portals", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    HIDEOUT_ID_FIELD_NUMBER: _ClassVar[int]
    THEME_FIELD_NUMBER: _ClassVar[int]
    SPAWN_X_FIELD_NUMBER: _ClassVar[int]
    SPAWN_Y_FIELD_NUMBER: _ClassVar[int]
    ACTIVE_PORTALS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    hideout_id: str
    theme: HideoutTheme
    spawn_x: float
    spawn_y: float
    active_portals: _containers.RepeatedCompositeFieldContainer[PortalInfo]
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., hideout_id: _Optional[str] = ..., theme: _Optional[_Union[HideoutTheme, str]] = ..., spawn_x: _Optional[float] = ..., spawn_y: _Optional[float] = ..., active_portals: _Optional[_Iterable[_Union[PortalInfo, _Mapping]]] = ..., error_message: _Optional[str] = ...) -> None: ...

class ActivateMapDeviceRequest(_message.Message):
    __slots__ = ("player_id", "map_item")
    PLAYER_ID_FIELD_NUMBER: _ClassVar[int]
    MAP_ITEM_FIELD_NUMBER: _ClassVar[int]
    player_id: str
    map_item: AstralMapItem
    def __init__(self, player_id: _Optional[str] = ..., map_item: _Optional[_Union[AstralMapItem, _Mapping]] = ...) -> None: ...

class ActivateMapDeviceResponse(_message.Message):
    __slots__ = ("success", "map_instance_id", "total_portals_opened", "portals_remaining", "portal_ring", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    MAP_INSTANCE_ID_FIELD_NUMBER: _ClassVar[int]
    TOTAL_PORTALS_OPENED_FIELD_NUMBER: _ClassVar[int]
    PORTALS_REMAINING_FIELD_NUMBER: _ClassVar[int]
    PORTAL_RING_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    map_instance_id: str
    total_portals_opened: int
    portals_remaining: int
    portal_ring: _containers.RepeatedCompositeFieldContainer[PortalInfo]
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., map_instance_id: _Optional[str] = ..., total_portals_opened: _Optional[int] = ..., portals_remaining: _Optional[int] = ..., portal_ring: _Optional[_Iterable[_Union[PortalInfo, _Mapping]]] = ..., error_message: _Optional[str] = ...) -> None: ...

class EnterPortalRequest(_message.Message):
    __slots__ = ("player_id", "portal_id")
    PLAYER_ID_FIELD_NUMBER: _ClassVar[int]
    PORTAL_ID_FIELD_NUMBER: _ClassVar[int]
    player_id: str
    portal_id: str
    def __init__(self, player_id: _Optional[str] = ..., portal_id: _Optional[str] = ...) -> None: ...

class EnterPortalResponse(_message.Message):
    __slots__ = ("success", "target_zone_id", "target_instance_id", "spawn_x", "spawn_y", "portals_remaining", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    TARGET_ZONE_ID_FIELD_NUMBER: _ClassVar[int]
    TARGET_INSTANCE_ID_FIELD_NUMBER: _ClassVar[int]
    SPAWN_X_FIELD_NUMBER: _ClassVar[int]
    SPAWN_Y_FIELD_NUMBER: _ClassVar[int]
    PORTALS_REMAINING_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    target_zone_id: str
    target_instance_id: str
    spawn_x: float
    spawn_y: float
    portals_remaining: int
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., target_zone_id: _Optional[str] = ..., target_instance_id: _Optional[str] = ..., spawn_x: _Optional[float] = ..., spawn_y: _Optional[float] = ..., portals_remaining: _Optional[int] = ..., error_message: _Optional[str] = ...) -> None: ...

class ConfigureWorldGateRequest(_message.Message):
    __slots__ = ("player_id", "target_zone_id")
    PLAYER_ID_FIELD_NUMBER: _ClassVar[int]
    TARGET_ZONE_ID_FIELD_NUMBER: _ClassVar[int]
    player_id: str
    target_zone_id: str
    def __init__(self, player_id: _Optional[str] = ..., target_zone_id: _Optional[str] = ...) -> None: ...

class ConfigureWorldGateResponse(_message.Message):
    __slots__ = ("success", "updated_portal", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    UPDATED_PORTAL_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    updated_portal: PortalInfo
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., updated_portal: _Optional[_Union[PortalInfo, _Mapping]] = ..., error_message: _Optional[str] = ...) -> None: ...

class ConfigureQuestGateRequest(_message.Message):
    __slots__ = ("player_id", "quest_id")
    PLAYER_ID_FIELD_NUMBER: _ClassVar[int]
    QUEST_ID_FIELD_NUMBER: _ClassVar[int]
    player_id: str
    quest_id: str
    def __init__(self, player_id: _Optional[str] = ..., quest_id: _Optional[str] = ...) -> None: ...

class ConfigureQuestGateResponse(_message.Message):
    __slots__ = ("success", "updated_portal", "quest_title", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    UPDATED_PORTAL_FIELD_NUMBER: _ClassVar[int]
    QUEST_TITLE_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    updated_portal: PortalInfo
    quest_title: str
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., updated_portal: _Optional[_Union[PortalInfo, _Mapping]] = ..., quest_title: _Optional[str] = ..., error_message: _Optional[str] = ...) -> None: ...

class HideoutStateSyncNotice(_message.Message):
    __slots__ = ("hideout_id", "owner_id", "theme", "map_device_portals_remaining", "active_map_name", "active_map_tier", "portals", "timestamp_ms")
    HIDEOUT_ID_FIELD_NUMBER: _ClassVar[int]
    OWNER_ID_FIELD_NUMBER: _ClassVar[int]
    THEME_FIELD_NUMBER: _ClassVar[int]
    MAP_DEVICE_PORTALS_REMAINING_FIELD_NUMBER: _ClassVar[int]
    ACTIVE_MAP_NAME_FIELD_NUMBER: _ClassVar[int]
    ACTIVE_MAP_TIER_FIELD_NUMBER: _ClassVar[int]
    PORTALS_FIELD_NUMBER: _ClassVar[int]
    TIMESTAMP_MS_FIELD_NUMBER: _ClassVar[int]
    hideout_id: str
    owner_id: str
    theme: HideoutTheme
    map_device_portals_remaining: int
    active_map_name: str
    active_map_tier: int
    portals: _containers.RepeatedCompositeFieldContainer[PortalInfo]
    timestamp_ms: int
    def __init__(self, hideout_id: _Optional[str] = ..., owner_id: _Optional[str] = ..., theme: _Optional[_Union[HideoutTheme, str]] = ..., map_device_portals_remaining: _Optional[int] = ..., active_map_name: _Optional[str] = ..., active_map_tier: _Optional[int] = ..., portals: _Optional[_Iterable[_Union[PortalInfo, _Mapping]]] = ..., timestamp_ms: _Optional[int] = ...) -> None: ...
