"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import sys

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions
from builtins import (
    bool,
    bytes,
    int,
    str,
    type,
)
from collections.abc import (
    Iterable,
    Mapping,
)
from common_pb2 import (
    File,
    Request,
    Response,
)
from google.protobuf.descriptor import (
    Descriptor,
    EnumDescriptor,
    FileDescriptor,
)
from google.protobuf.internal.containers import (
    MessageMap,
    RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer,
    ScalarMap,
)
from google.protobuf.internal.enum_type_wrapper import (
    _EnumTypeWrapper,
)
from google.protobuf.message import (
    Message,
)
from typing import (
    NewType,
)

DESCRIPTOR: FileDescriptor

class _OutputFormat:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _OutputFormatEnumTypeWrapper(
    _EnumTypeWrapper[_OutputFormat.ValueType], type
):  # noqa: F821
    DESCRIPTOR: EnumDescriptor
    SHARED_LIB: _OutputFormat.ValueType  # 0
    SHELLCODE: _OutputFormat.ValueType  # 1
    EXECUTABLE: _OutputFormat.ValueType  # 2
    SERVICE: _OutputFormat.ValueType  # 3
    EXTERNAL: _OutputFormat.ValueType  # 4

class OutputFormat(_OutputFormat, metaclass=_OutputFormatEnumTypeWrapper): ...

SHARED_LIB: OutputFormat.ValueType  # 0
SHELLCODE: OutputFormat.ValueType  # 1
EXECUTABLE: OutputFormat.ValueType  # 2
SERVICE: OutputFormat.ValueType  # 3
EXTERNAL: OutputFormat.ValueType  # 4

class _StageProtocol:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _StageProtocolEnumTypeWrapper(
    _EnumTypeWrapper[_StageProtocol.ValueType], type
):  # noqa: F821
    DESCRIPTOR: EnumDescriptor
    TCP: _StageProtocol.ValueType  # 0
    HTTP: _StageProtocol.ValueType  # 1
    HTTPS: _StageProtocol.ValueType  # 2

class StageProtocol(_StageProtocol, metaclass=_StageProtocolEnumTypeWrapper): ...

TCP: StageProtocol.ValueType  # 0
HTTP: StageProtocol.ValueType  # 1
HTTPS: StageProtocol.ValueType  # 2

class _LootType:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _LootTypeEnumTypeWrapper(
    _EnumTypeWrapper[_LootType.ValueType], type
):  # noqa: F821
    DESCRIPTOR: EnumDescriptor
    LOOT_FILE: _LootType.ValueType  # 0
    LOOT_CREDENTIAL: _LootType.ValueType  # 1

class LootType(_LootType, metaclass=_LootTypeEnumTypeWrapper):
    """[ Loot ] ----------------------------------------"""

LOOT_FILE: LootType.ValueType  # 0
LOOT_CREDENTIAL: LootType.ValueType  # 1

class _CredentialType:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _CredentialTypeEnumTypeWrapper(
    _EnumTypeWrapper[_CredentialType.ValueType], type
):  # noqa: F821
    DESCRIPTOR: EnumDescriptor
    NO_CREDENTIAL: _CredentialType.ValueType  # 0
    USER_PASSWORD: _CredentialType.ValueType  # 1
    API_KEY: _CredentialType.ValueType  # 2
    FILE: _CredentialType.ValueType  # 3

class CredentialType(_CredentialType, metaclass=_CredentialTypeEnumTypeWrapper): ...

NO_CREDENTIAL: CredentialType.ValueType  # 0
USER_PASSWORD: CredentialType.ValueType  # 1
API_KEY: CredentialType.ValueType  # 2
FILE: CredentialType.ValueType  # 3

class _FileType:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _FileTypeEnumTypeWrapper(
    _EnumTypeWrapper[_FileType.ValueType], type
):  # noqa: F821
    DESCRIPTOR: EnumDescriptor
    NO_FILE: _FileType.ValueType  # 0
    BINARY: _FileType.ValueType  # 1
    TEXT: _FileType.ValueType  # 2

class FileType(_FileType, metaclass=_FileTypeEnumTypeWrapper): ...

NO_FILE: FileType.ValueType  # 0
BINARY: FileType.ValueType  # 1
TEXT: FileType.ValueType  # 2

class _ShellcodeEncoder:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _ShellcodeEncoderEnumTypeWrapper(
    _EnumTypeWrapper[_ShellcodeEncoder.ValueType], type
):  # noqa: F821
    DESCRIPTOR: EnumDescriptor
    SHIKATA_GA_NAI: _ShellcodeEncoder.ValueType  # 0

class ShellcodeEncoder(_ShellcodeEncoder, metaclass=_ShellcodeEncoderEnumTypeWrapper):
    """[ Shellcode ] ----------------------------------------"""

SHIKATA_GA_NAI: ShellcodeEncoder.ValueType  # 0

class Version(Message):
    """[ Version ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    MAJOR_FIELD_NUMBER: int
    MINOR_FIELD_NUMBER: int
    PATCH_FIELD_NUMBER: int
    COMMIT_FIELD_NUMBER: int
    DIRTY_FIELD_NUMBER: int
    COMPILEDAT_FIELD_NUMBER: int
    OS_FIELD_NUMBER: int
    ARCH_FIELD_NUMBER: int
    Major: int
    Minor: int
    Patch: int
    Commit: str
    Dirty: bool
    CompiledAt: int
    OS: str
    Arch: str
    def __init__(
        self,
        *,
        Major: int = ...,
        Minor: int = ...,
        Patch: int = ...,
        Commit: str = ...,
        Dirty: bool = ...,
        CompiledAt: int = ...,
        OS: str = ...,
        Arch: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Arch",
            b"Arch",
            "Commit",
            b"Commit",
            "CompiledAt",
            b"CompiledAt",
            "Dirty",
            b"Dirty",
            "Major",
            b"Major",
            "Minor",
            b"Minor",
            "OS",
            b"OS",
            "Patch",
            b"Patch",
        ],
    ) -> None: ...

class Session(Message):
    """[ Core ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    ID_FIELD_NUMBER: int
    NAME_FIELD_NUMBER: int
    HOSTNAME_FIELD_NUMBER: int
    UUID_FIELD_NUMBER: int
    USERNAME_FIELD_NUMBER: int
    UID_FIELD_NUMBER: int
    GID_FIELD_NUMBER: int
    OS_FIELD_NUMBER: int
    ARCH_FIELD_NUMBER: int
    TRANSPORT_FIELD_NUMBER: int
    REMOTEADDRESS_FIELD_NUMBER: int
    PID_FIELD_NUMBER: int
    FILENAME_FIELD_NUMBER: int
    LASTCHECKIN_FIELD_NUMBER: int
    ACTIVEC2_FIELD_NUMBER: int
    VERSION_FIELD_NUMBER: int
    EVASION_FIELD_NUMBER: int
    ISDEAD_FIELD_NUMBER: int
    RECONNECTINTERVAL_FIELD_NUMBER: int
    PROXYURL_FIELD_NUMBER: int
    BURNED_FIELD_NUMBER: int
    EXTENSIONS_FIELD_NUMBER: int
    PEERID_FIELD_NUMBER: int
    LOCALE_FIELD_NUMBER: int
    FIRSTCONTACT_FIELD_NUMBER: int
    ID: str
    Name: str
    Hostname: str
    UUID: str
    Username: str
    UID: str
    GID: str
    OS: str
    Arch: str
    Transport: str
    RemoteAddress: str
    PID: int
    Filename: str
    """Argv[0]"""
    LastCheckin: int
    ActiveC2: str
    Version: str
    Evasion: bool
    IsDead: bool
    ReconnectInterval: int
    ProxyURL: str
    Burned: bool
    @property
    def Extensions(self) -> RepeatedScalarFieldContainer[str]: ...
    PeerID: int
    """string ConfigID = 24;"""
    Locale: str
    FirstContact: int
    def __init__(
        self,
        *,
        ID: str = ...,
        Name: str = ...,
        Hostname: str = ...,
        UUID: str = ...,
        Username: str = ...,
        UID: str = ...,
        GID: str = ...,
        OS: str = ...,
        Arch: str = ...,
        Transport: str = ...,
        RemoteAddress: str = ...,
        PID: int = ...,
        Filename: str = ...,
        LastCheckin: int = ...,
        ActiveC2: str = ...,
        Version: str = ...,
        Evasion: bool = ...,
        IsDead: bool = ...,
        ReconnectInterval: int = ...,
        ProxyURL: str = ...,
        Burned: bool = ...,
        Extensions: Iterable[str] | None = ...,
        PeerID: int = ...,
        Locale: str = ...,
        FirstContact: int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "ActiveC2",
            b"ActiveC2",
            "Arch",
            b"Arch",
            "Burned",
            b"Burned",
            "Evasion",
            b"Evasion",
            "Extensions",
            b"Extensions",
            "Filename",
            b"Filename",
            "FirstContact",
            b"FirstContact",
            "GID",
            b"GID",
            "Hostname",
            b"Hostname",
            "ID",
            b"ID",
            "IsDead",
            b"IsDead",
            "LastCheckin",
            b"LastCheckin",
            "Locale",
            b"Locale",
            "Name",
            b"Name",
            "OS",
            b"OS",
            "PID",
            b"PID",
            "PeerID",
            b"PeerID",
            "ProxyURL",
            b"ProxyURL",
            "ReconnectInterval",
            b"ReconnectInterval",
            "RemoteAddress",
            b"RemoteAddress",
            "Transport",
            b"Transport",
            "UID",
            b"UID",
            "UUID",
            b"UUID",
            "Username",
            b"Username",
            "Version",
            b"Version",
        ],
    ) -> None: ...

class Beacon(Message):
    DESCRIPTOR: Descriptor

    ID_FIELD_NUMBER: int
    NAME_FIELD_NUMBER: int
    HOSTNAME_FIELD_NUMBER: int
    UUID_FIELD_NUMBER: int
    USERNAME_FIELD_NUMBER: int
    UID_FIELD_NUMBER: int
    GID_FIELD_NUMBER: int
    OS_FIELD_NUMBER: int
    ARCH_FIELD_NUMBER: int
    TRANSPORT_FIELD_NUMBER: int
    REMOTEADDRESS_FIELD_NUMBER: int
    PID_FIELD_NUMBER: int
    FILENAME_FIELD_NUMBER: int
    LASTCHECKIN_FIELD_NUMBER: int
    ACTIVEC2_FIELD_NUMBER: int
    VERSION_FIELD_NUMBER: int
    EVASION_FIELD_NUMBER: int
    ISDEAD_FIELD_NUMBER: int
    PROXYURL_FIELD_NUMBER: int
    RECONNECTINTERVAL_FIELD_NUMBER: int
    INTERVAL_FIELD_NUMBER: int
    JITTER_FIELD_NUMBER: int
    BURNED_FIELD_NUMBER: int
    NEXTCHECKIN_FIELD_NUMBER: int
    TASKSCOUNT_FIELD_NUMBER: int
    TASKSCOUNTCOMPLETED_FIELD_NUMBER: int
    LOCALE_FIELD_NUMBER: int
    FIRSTCONTACT_FIELD_NUMBER: int
    ID: str
    Name: str
    Hostname: str
    UUID: str
    Username: str
    UID: str
    GID: str
    OS: str
    Arch: str
    Transport: str
    RemoteAddress: str
    PID: int
    Filename: str
    """Argv[0]"""
    LastCheckin: int
    ActiveC2: str
    Version: str
    Evasion: bool
    IsDead: bool
    ProxyURL: str
    ReconnectInterval: int
    Interval: int
    Jitter: int
    Burned: bool
    NextCheckin: int
    TasksCount: int
    TasksCountCompleted: int
    Locale: str
    FirstContact: int
    def __init__(
        self,
        *,
        ID: str = ...,
        Name: str = ...,
        Hostname: str = ...,
        UUID: str = ...,
        Username: str = ...,
        UID: str = ...,
        GID: str = ...,
        OS: str = ...,
        Arch: str = ...,
        Transport: str = ...,
        RemoteAddress: str = ...,
        PID: int = ...,
        Filename: str = ...,
        LastCheckin: int = ...,
        ActiveC2: str = ...,
        Version: str = ...,
        Evasion: bool = ...,
        IsDead: bool = ...,
        ProxyURL: str = ...,
        ReconnectInterval: int = ...,
        Interval: int = ...,
        Jitter: int = ...,
        Burned: bool = ...,
        NextCheckin: int = ...,
        TasksCount: int = ...,
        TasksCountCompleted: int = ...,
        Locale: str = ...,
        FirstContact: int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "ActiveC2",
            b"ActiveC2",
            "Arch",
            b"Arch",
            "Burned",
            b"Burned",
            "Evasion",
            b"Evasion",
            "Filename",
            b"Filename",
            "FirstContact",
            b"FirstContact",
            "GID",
            b"GID",
            "Hostname",
            b"Hostname",
            "ID",
            b"ID",
            "Interval",
            b"Interval",
            "IsDead",
            b"IsDead",
            "Jitter",
            b"Jitter",
            "LastCheckin",
            b"LastCheckin",
            "Locale",
            b"Locale",
            "Name",
            b"Name",
            "NextCheckin",
            b"NextCheckin",
            "OS",
            b"OS",
            "PID",
            b"PID",
            "ProxyURL",
            b"ProxyURL",
            "ReconnectInterval",
            b"ReconnectInterval",
            "RemoteAddress",
            b"RemoteAddress",
            "TasksCount",
            b"TasksCount",
            "TasksCountCompleted",
            b"TasksCountCompleted",
            "Transport",
            b"Transport",
            "UID",
            b"UID",
            "UUID",
            b"UUID",
            "Username",
            b"Username",
            "Version",
            b"Version",
        ],
    ) -> None: ...

class Beacons(Message):
    DESCRIPTOR: Descriptor

    BEACONS_FIELD_NUMBER: int
    @property
    def Beacons(self) -> RepeatedCompositeFieldContainer[Beacon]: ...
    def __init__(
        self,
        *,
        Beacons: Iterable[Beacon] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Beacons", b"Beacons"]
    ) -> None: ...

class BeaconTask(Message):
    DESCRIPTOR: Descriptor

    ID_FIELD_NUMBER: int
    BEACONID_FIELD_NUMBER: int
    CREATEDAT_FIELD_NUMBER: int
    STATE_FIELD_NUMBER: int
    SENTAT_FIELD_NUMBER: int
    COMPLETEDAT_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    RESPONSE_FIELD_NUMBER: int
    DESCRIPTION_FIELD_NUMBER: int
    ID: str
    BeaconID: str
    CreatedAt: int
    State: str
    SentAt: int
    CompletedAt: int
    Request: bytes
    Response: bytes
    Description: str
    def __init__(
        self,
        *,
        ID: str = ...,
        BeaconID: str = ...,
        CreatedAt: int = ...,
        State: str = ...,
        SentAt: int = ...,
        CompletedAt: int = ...,
        Request: bytes = ...,
        Response: bytes = ...,
        Description: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "BeaconID",
            b"BeaconID",
            "CompletedAt",
            b"CompletedAt",
            "CreatedAt",
            b"CreatedAt",
            "Description",
            b"Description",
            "ID",
            b"ID",
            "Request",
            b"Request",
            "Response",
            b"Response",
            "SentAt",
            b"SentAt",
            "State",
            b"State",
        ],
    ) -> None: ...

class BeaconTasks(Message):
    DESCRIPTOR: Descriptor

    BEACONID_FIELD_NUMBER: int
    TASKS_FIELD_NUMBER: int
    BeaconID: str
    @property
    def Tasks(self) -> RepeatedCompositeFieldContainer[BeaconTask]: ...
    def __init__(
        self,
        *,
        BeaconID: str = ...,
        Tasks: Iterable[BeaconTask] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "BeaconID", b"BeaconID", "Tasks", b"Tasks"
        ],
    ) -> None: ...

class ImplantC2(Message):
    DESCRIPTOR: Descriptor

    PRIORITY_FIELD_NUMBER: int
    URL_FIELD_NUMBER: int
    OPTIONS_FIELD_NUMBER: int
    Priority: int
    URL: str
    Options: str
    """Protocol specific options"""
    def __init__(
        self,
        *,
        Priority: int = ...,
        URL: str = ...,
        Options: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Options", b"Options", "Priority", b"Priority", "URL", b"URL"
        ],
    ) -> None: ...

class ImplantConfig(Message):
    DESCRIPTOR: Descriptor

    ID_FIELD_NUMBER: int
    ISBEACON_FIELD_NUMBER: int
    BEACONINTERVAL_FIELD_NUMBER: int
    BEACONJITTER_FIELD_NUMBER: int
    GOOS_FIELD_NUMBER: int
    GOARCH_FIELD_NUMBER: int
    NAME_FIELD_NUMBER: int
    DEBUG_FIELD_NUMBER: int
    EVASION_FIELD_NUMBER: int
    OBFUSCATESYMBOLS_FIELD_NUMBER: int
    MTLSCACERT_FIELD_NUMBER: int
    MTLSCERT_FIELD_NUMBER: int
    MTLSKEY_FIELD_NUMBER: int
    ECCPUBLICKEY_FIELD_NUMBER: int
    ECCPRIVATEKEY_FIELD_NUMBER: int
    ECCPUBLICKEYSIGNATURE_FIELD_NUMBER: int
    MINISIGNSERVERPUBLICKEY_FIELD_NUMBER: int
    WGIMPLANTPRIVKEY_FIELD_NUMBER: int
    WGSERVERPUBKEY_FIELD_NUMBER: int
    WGPEERTUNIP_FIELD_NUMBER: int
    WGKEYEXCHANGEPORT_FIELD_NUMBER: int
    WGTCPCOMMSPORT_FIELD_NUMBER: int
    RECONNECTINTERVAL_FIELD_NUMBER: int
    MAXCONNECTIONERRORS_FIELD_NUMBER: int
    POLLTIMEOUT_FIELD_NUMBER: int
    C2_FIELD_NUMBER: int
    CANARYDOMAINS_FIELD_NUMBER: int
    CONNECTIONSTRATEGY_FIELD_NUMBER: int
    LIMITDOMAINJOINED_FIELD_NUMBER: int
    LIMITDATETIME_FIELD_NUMBER: int
    LIMITHOSTNAME_FIELD_NUMBER: int
    LIMITUSERNAME_FIELD_NUMBER: int
    LIMITFILEEXISTS_FIELD_NUMBER: int
    LIMITLOCALE_FIELD_NUMBER: int
    FORMAT_FIELD_NUMBER: int
    ISSHAREDLIB_FIELD_NUMBER: int
    FILENAME_FIELD_NUMBER: int
    ISSERVICE_FIELD_NUMBER: int
    ISSHELLCODE_FIELD_NUMBER: int
    RUNATLOAD_FIELD_NUMBER: int
    ID: str
    IsBeacon: bool
    BeaconInterval: int
    BeaconJitter: int
    GOOS: str
    GOARCH: str
    Name: str
    Debug: bool
    Evasion: bool
    ObfuscateSymbols: bool
    MtlsCACert: str
    MtlsCert: str
    MtlsKey: str
    ECCPublicKey: str
    ECCPrivateKey: str
    ECCPublicKeySignature: str
    MinisignServerPublicKey: str
    WGImplantPrivKey: str
    WGServerPubKey: str
    WGPeerTunIP: str
    WGKeyExchangePort: int
    WGTcpCommsPort: int
    ReconnectInterval: int
    MaxConnectionErrors: int
    PollTimeout: int
    @property
    def C2(self) -> RepeatedCompositeFieldContainer[ImplantC2]:
        """c2"""
    @property
    def CanaryDomains(self) -> RepeatedScalarFieldContainer[str]: ...
    ConnectionStrategy: str
    LimitDomainJoined: bool
    LimitDatetime: str
    LimitHostname: str
    LimitUsername: str
    LimitFileExists: str
    LimitLocale: str
    Format: OutputFormat.ValueType
    IsSharedLib: bool
    FileName: str
    IsService: bool
    IsShellcode: bool
    RunAtLoad: bool
    def __init__(
        self,
        *,
        ID: str = ...,
        IsBeacon: bool = ...,
        BeaconInterval: int = ...,
        BeaconJitter: int = ...,
        GOOS: str = ...,
        GOARCH: str = ...,
        Name: str = ...,
        Debug: bool = ...,
        Evasion: bool = ...,
        ObfuscateSymbols: bool = ...,
        MtlsCACert: str = ...,
        MtlsCert: str = ...,
        MtlsKey: str = ...,
        ECCPublicKey: str = ...,
        ECCPrivateKey: str = ...,
        ECCPublicKeySignature: str = ...,
        MinisignServerPublicKey: str = ...,
        WGImplantPrivKey: str = ...,
        WGServerPubKey: str = ...,
        WGPeerTunIP: str = ...,
        WGKeyExchangePort: int = ...,
        WGTcpCommsPort: int = ...,
        ReconnectInterval: int = ...,
        MaxConnectionErrors: int = ...,
        PollTimeout: int = ...,
        C2: Iterable[ImplantC2] | None = ...,
        CanaryDomains: Iterable[str] | None = ...,
        ConnectionStrategy: str = ...,
        LimitDomainJoined: bool = ...,
        LimitDatetime: str = ...,
        LimitHostname: str = ...,
        LimitUsername: str = ...,
        LimitFileExists: str = ...,
        LimitLocale: str = ...,
        Format: OutputFormat.ValueType = ...,
        IsSharedLib: bool = ...,
        FileName: str = ...,
        IsService: bool = ...,
        IsShellcode: bool = ...,
        RunAtLoad: bool = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "BeaconInterval",
            b"BeaconInterval",
            "BeaconJitter",
            b"BeaconJitter",
            "C2",
            b"C2",
            "CanaryDomains",
            b"CanaryDomains",
            "ConnectionStrategy",
            b"ConnectionStrategy",
            "Debug",
            b"Debug",
            "ECCPrivateKey",
            b"ECCPrivateKey",
            "ECCPublicKey",
            b"ECCPublicKey",
            "ECCPublicKeySignature",
            b"ECCPublicKeySignature",
            "Evasion",
            b"Evasion",
            "FileName",
            b"FileName",
            "Format",
            b"Format",
            "GOARCH",
            b"GOARCH",
            "GOOS",
            b"GOOS",
            "ID",
            b"ID",
            "IsBeacon",
            b"IsBeacon",
            "IsService",
            b"IsService",
            "IsSharedLib",
            b"IsSharedLib",
            "IsShellcode",
            b"IsShellcode",
            "LimitDatetime",
            b"LimitDatetime",
            "LimitDomainJoined",
            b"LimitDomainJoined",
            "LimitFileExists",
            b"LimitFileExists",
            "LimitHostname",
            b"LimitHostname",
            "LimitLocale",
            b"LimitLocale",
            "LimitUsername",
            b"LimitUsername",
            "MaxConnectionErrors",
            b"MaxConnectionErrors",
            "MinisignServerPublicKey",
            b"MinisignServerPublicKey",
            "MtlsCACert",
            b"MtlsCACert",
            "MtlsCert",
            b"MtlsCert",
            "MtlsKey",
            b"MtlsKey",
            "Name",
            b"Name",
            "ObfuscateSymbols",
            b"ObfuscateSymbols",
            "PollTimeout",
            b"PollTimeout",
            "ReconnectInterval",
            b"ReconnectInterval",
            "RunAtLoad",
            b"RunAtLoad",
            "WGImplantPrivKey",
            b"WGImplantPrivKey",
            "WGKeyExchangePort",
            b"WGKeyExchangePort",
            "WGPeerTunIP",
            b"WGPeerTunIP",
            "WGServerPubKey",
            b"WGServerPubKey",
            "WGTcpCommsPort",
            b"WGTcpCommsPort",
        ],
    ) -> None: ...

class ExternalImplantConfig(Message):
    DESCRIPTOR: Descriptor

    NAME_FIELD_NUMBER: int
    CONFIG_FIELD_NUMBER: int
    OTPSECRET_FIELD_NUMBER: int
    Name: str
    @property
    def Config(self) -> ImplantConfig: ...
    OTPSecret: str
    def __init__(
        self,
        *,
        Name: str = ...,
        Config: ImplantConfig | None = ...,
        OTPSecret: str = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Config", b"Config"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Config", b"Config", "Name", b"Name", "OTPSecret", b"OTPSecret"
        ],
    ) -> None: ...

class ExternalImplantBinary(Message):
    DESCRIPTOR: Descriptor

    NAME_FIELD_NUMBER: int
    IMPLANTCONFIGID_FIELD_NUMBER: int
    FILE_FIELD_NUMBER: int
    Name: str
    ImplantConfigID: str
    @property
    def File(self) -> File: ...
    def __init__(
        self,
        *,
        Name: str = ...,
        ImplantConfigID: str = ...,
        File: File | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["File", b"File"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "File", b"File", "ImplantConfigID", b"ImplantConfigID", "Name", b"Name"
        ],
    ) -> None: ...

class ImplantBuilds(Message):
    """Configs of previously built implants"""

    DESCRIPTOR: Descriptor

    class ConfigsEntry(Message):
        DESCRIPTOR: Descriptor

        KEY_FIELD_NUMBER: int
        VALUE_FIELD_NUMBER: int
        key: str
        @property
        def value(self) -> ImplantConfig: ...
        def __init__(
            self,
            *,
            key: str = ...,
            value: ImplantConfig | None = ...,
        ) -> None: ...
        def HasField(
            self, field_name: typing_extensions.Literal["value", b"value"]
        ) -> bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

    CONFIGS_FIELD_NUMBER: int
    @property
    def Configs(self) -> MessageMap[str, ImplantConfig]: ...
    def __init__(
        self,
        *,
        Configs: Mapping[str, ImplantConfig] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Configs", b"Configs"]
    ) -> None: ...

class CompilerTarget(Message):
    DESCRIPTOR: Descriptor

    GOOS_FIELD_NUMBER: int
    GOARCH_FIELD_NUMBER: int
    FORMAT_FIELD_NUMBER: int
    GOOS: str
    """The server's OS"""
    GOARCH: str
    """The server's Arch"""
    Format: OutputFormat.ValueType
    def __init__(
        self,
        *,
        GOOS: str = ...,
        GOARCH: str = ...,
        Format: OutputFormat.ValueType = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Format", b"Format", "GOARCH", b"GOARCH", "GOOS", b"GOOS"
        ],
    ) -> None: ...

class CrossCompiler(Message):
    DESCRIPTOR: Descriptor

    TARGETGOOS_FIELD_NUMBER: int
    TARGETGOARCH_FIELD_NUMBER: int
    CCPATH_FIELD_NUMBER: int
    CXXPATH_FIELD_NUMBER: int
    TargetGOOS: str
    """The server's OS"""
    TargetGOARCH: str
    """The server's Arch"""
    CCPath: str
    CXXPath: str
    def __init__(
        self,
        *,
        TargetGOOS: str = ...,
        TargetGOARCH: str = ...,
        CCPath: str = ...,
        CXXPath: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "CCPath",
            b"CCPath",
            "CXXPath",
            b"CXXPath",
            "TargetGOARCH",
            b"TargetGOARCH",
            "TargetGOOS",
            b"TargetGOOS",
        ],
    ) -> None: ...

class Compiler(Message):
    DESCRIPTOR: Descriptor

    GOOS_FIELD_NUMBER: int
    GOARCH_FIELD_NUMBER: int
    TARGETS_FIELD_NUMBER: int
    CROSSCOMPILERS_FIELD_NUMBER: int
    UNSUPPORTEDTARGETS_FIELD_NUMBER: int
    GOOS: str
    """The server's OS"""
    GOARCH: str
    """The server's Arch"""
    @property
    def Targets(self) -> RepeatedCompositeFieldContainer[CompilerTarget]: ...
    @property
    def CrossCompilers(self) -> RepeatedCompositeFieldContainer[CrossCompiler]: ...
    @property
    def UnsupportedTargets(self) -> RepeatedCompositeFieldContainer[CompilerTarget]: ...
    def __init__(
        self,
        *,
        GOOS: str = ...,
        GOARCH: str = ...,
        Targets: Iterable[CompilerTarget] | None = ...,
        CrossCompilers: Iterable[CrossCompiler] | None = ...,
        UnsupportedTargets: Iterable[CompilerTarget] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "CrossCompilers",
            b"CrossCompilers",
            "GOARCH",
            b"GOARCH",
            "GOOS",
            b"GOOS",
            "Targets",
            b"Targets",
            "UnsupportedTargets",
            b"UnsupportedTargets",
        ],
    ) -> None: ...

class DeleteReq(Message):
    DESCRIPTOR: Descriptor

    NAME_FIELD_NUMBER: int
    Name: str
    def __init__(
        self,
        *,
        Name: str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Name", b"Name"]
    ) -> None: ...

class DNSCanary(Message):
    """DNSCanary - Single canary and metadata"""

    DESCRIPTOR: Descriptor

    IMPLANTNAME_FIELD_NUMBER: int
    DOMAIN_FIELD_NUMBER: int
    TRIGGERED_FIELD_NUMBER: int
    FIRSTTRIGGERED_FIELD_NUMBER: int
    LATESTTRIGGER_FIELD_NUMBER: int
    COUNT_FIELD_NUMBER: int
    ImplantName: str
    Domain: str
    Triggered: bool
    FirstTriggered: str
    LatestTrigger: str
    Count: int
    def __init__(
        self,
        *,
        ImplantName: str = ...,
        Domain: str = ...,
        Triggered: bool = ...,
        FirstTriggered: str = ...,
        LatestTrigger: str = ...,
        Count: int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Count",
            b"Count",
            "Domain",
            b"Domain",
            "FirstTriggered",
            b"FirstTriggered",
            "ImplantName",
            b"ImplantName",
            "LatestTrigger",
            b"LatestTrigger",
            "Triggered",
            b"Triggered",
        ],
    ) -> None: ...

class Canaries(Message):
    DESCRIPTOR: Descriptor

    CANARIES_FIELD_NUMBER: int
    @property
    def Canaries(self) -> RepeatedCompositeFieldContainer[DNSCanary]: ...
    def __init__(
        self,
        *,
        Canaries: Iterable[DNSCanary] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Canaries", b"Canaries"]
    ) -> None: ...

class UniqueWGIP(Message):
    """UniqueWGIP - Unique wireguard IP"""

    DESCRIPTOR: Descriptor

    IP_FIELD_NUMBER: int
    IP: str
    def __init__(
        self,
        *,
        IP: str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["IP", b"IP"]
    ) -> None: ...

class ImplantProfile(Message):
    DESCRIPTOR: Descriptor

    NAME_FIELD_NUMBER: int
    CONFIG_FIELD_NUMBER: int
    Name: str
    @property
    def Config(self) -> ImplantConfig: ...
    def __init__(
        self,
        *,
        Name: str = ...,
        Config: ImplantConfig | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Config", b"Config"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal["Config", b"Config", "Name", b"Name"],
    ) -> None: ...

class ImplantProfiles(Message):
    DESCRIPTOR: Descriptor

    PROFILES_FIELD_NUMBER: int
    @property
    def Profiles(self) -> RepeatedCompositeFieldContainer[ImplantProfile]: ...
    def __init__(
        self,
        *,
        Profiles: Iterable[ImplantProfile] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Profiles", b"Profiles"]
    ) -> None: ...

class RegenerateReq(Message):
    DESCRIPTOR: Descriptor

    IMPLANTNAME_FIELD_NUMBER: int
    ImplantName: str
    def __init__(
        self,
        *,
        ImplantName: str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["ImplantName", b"ImplantName"]
    ) -> None: ...

class Job(Message):
    DESCRIPTOR: Descriptor

    ID_FIELD_NUMBER: int
    NAME_FIELD_NUMBER: int
    DESCRIPTION_FIELD_NUMBER: int
    PROTOCOL_FIELD_NUMBER: int
    PORT_FIELD_NUMBER: int
    DOMAINS_FIELD_NUMBER: int
    ID: int
    Name: str
    Description: str
    Protocol: str
    Port: int
    @property
    def Domains(self) -> RepeatedScalarFieldContainer[str]: ...
    def __init__(
        self,
        *,
        ID: int = ...,
        Name: str = ...,
        Description: str = ...,
        Protocol: str = ...,
        Port: int = ...,
        Domains: Iterable[str] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Description",
            b"Description",
            "Domains",
            b"Domains",
            "ID",
            b"ID",
            "Name",
            b"Name",
            "Port",
            b"Port",
            "Protocol",
            b"Protocol",
        ],
    ) -> None: ...

class Jobs(Message):
    """[ Jobs ]  ----------------------------------------"""

    DESCRIPTOR: Descriptor

    ACTIVE_FIELD_NUMBER: int
    @property
    def Active(self) -> RepeatedCompositeFieldContainer[Job]: ...
    def __init__(
        self,
        *,
        Active: Iterable[Job] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Active", b"Active"]
    ) -> None: ...

class KillJobReq(Message):
    DESCRIPTOR: Descriptor

    ID_FIELD_NUMBER: int
    ID: int
    def __init__(
        self,
        *,
        ID: int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["ID", b"ID"]
    ) -> None: ...

class KillJob(Message):
    DESCRIPTOR: Descriptor

    ID_FIELD_NUMBER: int
    SUCCESS_FIELD_NUMBER: int
    ID: int
    Success: bool
    def __init__(
        self,
        *,
        ID: int = ...,
        Success: bool = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["ID", b"ID", "Success", b"Success"]
    ) -> None: ...

class MTLSListenerReq(Message):
    """[ Listeners ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    HOST_FIELD_NUMBER: int
    PORT_FIELD_NUMBER: int
    PERSISTENT_FIELD_NUMBER: int
    Host: str
    Port: int
    Persistent: bool
    def __init__(
        self,
        *,
        Host: str = ...,
        Port: int = ...,
        Persistent: bool = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Host", b"Host", "Persistent", b"Persistent", "Port", b"Port"
        ],
    ) -> None: ...

class MTLSListener(Message):
    DESCRIPTOR: Descriptor

    JOBID_FIELD_NUMBER: int
    JobID: int
    def __init__(
        self,
        *,
        JobID: int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["JobID", b"JobID"]
    ) -> None: ...

class WGListenerReq(Message):
    DESCRIPTOR: Descriptor

    HOST_FIELD_NUMBER: int
    PORT_FIELD_NUMBER: int
    TUNIP_FIELD_NUMBER: int
    NPORT_FIELD_NUMBER: int
    KEYPORT_FIELD_NUMBER: int
    PERSISTENT_FIELD_NUMBER: int
    Host: str
    Port: int
    TunIP: str
    NPort: int
    KeyPort: int
    Persistent: bool
    def __init__(
        self,
        *,
        Host: str = ...,
        Port: int = ...,
        TunIP: str = ...,
        NPort: int = ...,
        KeyPort: int = ...,
        Persistent: bool = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Host",
            b"Host",
            "KeyPort",
            b"KeyPort",
            "NPort",
            b"NPort",
            "Persistent",
            b"Persistent",
            "Port",
            b"Port",
            "TunIP",
            b"TunIP",
        ],
    ) -> None: ...

class WGListener(Message):
    DESCRIPTOR: Descriptor

    JOBID_FIELD_NUMBER: int
    JobID: int
    def __init__(
        self,
        *,
        JobID: int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["JobID", b"JobID"]
    ) -> None: ...

class DNSListenerReq(Message):
    DESCRIPTOR: Descriptor

    DOMAINS_FIELD_NUMBER: int
    CANARIES_FIELD_NUMBER: int
    HOST_FIELD_NUMBER: int
    PORT_FIELD_NUMBER: int
    PERSISTENT_FIELD_NUMBER: int
    ENFORCEOTP_FIELD_NUMBER: int
    @property
    def Domains(self) -> RepeatedScalarFieldContainer[str]: ...
    Canaries: bool
    Host: str
    Port: int
    Persistent: bool
    EnforceOTP: bool
    def __init__(
        self,
        *,
        Domains: Iterable[str] | None = ...,
        Canaries: bool = ...,
        Host: str = ...,
        Port: int = ...,
        Persistent: bool = ...,
        EnforceOTP: bool = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Canaries",
            b"Canaries",
            "Domains",
            b"Domains",
            "EnforceOTP",
            b"EnforceOTP",
            "Host",
            b"Host",
            "Persistent",
            b"Persistent",
            "Port",
            b"Port",
        ],
    ) -> None: ...

class DNSListener(Message):
    DESCRIPTOR: Descriptor

    JOBID_FIELD_NUMBER: int
    JobID: int
    def __init__(
        self,
        *,
        JobID: int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["JobID", b"JobID"]
    ) -> None: ...

class HTTPListenerReq(Message):
    DESCRIPTOR: Descriptor

    DOMAIN_FIELD_NUMBER: int
    HOST_FIELD_NUMBER: int
    PORT_FIELD_NUMBER: int
    SECURE_FIELD_NUMBER: int
    WEBSITE_FIELD_NUMBER: int
    CERT_FIELD_NUMBER: int
    KEY_FIELD_NUMBER: int
    ACME_FIELD_NUMBER: int
    PERSISTENT_FIELD_NUMBER: int
    ENFORCEOTP_FIELD_NUMBER: int
    LONGPOLLTIMEOUT_FIELD_NUMBER: int
    LONGPOLLJITTER_FIELD_NUMBER: int
    RANDOMIZEJARM_FIELD_NUMBER: int
    Domain: str
    Host: str
    Port: int
    Secure: bool
    """Enable HTTPS"""
    Website: str
    Cert: bytes
    Key: bytes
    ACME: bool
    Persistent: bool
    EnforceOTP: bool
    LongPollTimeout: int
    LongPollJitter: int
    RandomizeJARM: bool
    """Only valid with Secure = true"""
    def __init__(
        self,
        *,
        Domain: str = ...,
        Host: str = ...,
        Port: int = ...,
        Secure: bool = ...,
        Website: str = ...,
        Cert: bytes = ...,
        Key: bytes = ...,
        ACME: bool = ...,
        Persistent: bool = ...,
        EnforceOTP: bool = ...,
        LongPollTimeout: int = ...,
        LongPollJitter: int = ...,
        RandomizeJARM: bool = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "ACME",
            b"ACME",
            "Cert",
            b"Cert",
            "Domain",
            b"Domain",
            "EnforceOTP",
            b"EnforceOTP",
            "Host",
            b"Host",
            "Key",
            b"Key",
            "LongPollJitter",
            b"LongPollJitter",
            "LongPollTimeout",
            b"LongPollTimeout",
            "Persistent",
            b"Persistent",
            "Port",
            b"Port",
            "RandomizeJARM",
            b"RandomizeJARM",
            "Secure",
            b"Secure",
            "Website",
            b"Website",
        ],
    ) -> None: ...

class NamedPipesReq(Message):
    """Named Pipes Messages for pivoting"""

    DESCRIPTOR: Descriptor

    PIPENAME_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    PipeName: str
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        PipeName: str = ...,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Request", b"Request"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "PipeName", b"PipeName", "Request", b"Request"
        ],
    ) -> None: ...

class NamedPipes(Message):
    DESCRIPTOR: Descriptor

    SUCCESS_FIELD_NUMBER: int
    ERR_FIELD_NUMBER: int
    RESPONSE_FIELD_NUMBER: int
    Success: bool
    Err: str
    @property
    def Response(self) -> Response: ...
    def __init__(
        self,
        *,
        Success: bool = ...,
        Err: str = ...,
        Response: Response | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Response", b"Response"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Err", b"Err", "Response", b"Response", "Success", b"Success"
        ],
    ) -> None: ...

class TCPPivotReq(Message):
    """TCP Messages for pivoting"""

    DESCRIPTOR: Descriptor

    ADDRESS_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    Address: str
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        Address: str = ...,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Request", b"Request"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Address", b"Address", "Request", b"Request"
        ],
    ) -> None: ...

class TCPPivot(Message):
    DESCRIPTOR: Descriptor

    SUCCESS_FIELD_NUMBER: int
    ERR_FIELD_NUMBER: int
    RESPONSE_FIELD_NUMBER: int
    Success: bool
    Err: str
    @property
    def Response(self) -> Response: ...
    def __init__(
        self,
        *,
        Success: bool = ...,
        Err: str = ...,
        Response: Response | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Response", b"Response"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Err", b"Err", "Response", b"Response", "Success", b"Success"
        ],
    ) -> None: ...

class HTTPListener(Message):
    DESCRIPTOR: Descriptor

    JOBID_FIELD_NUMBER: int
    JobID: int
    def __init__(
        self,
        *,
        JobID: int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["JobID", b"JobID"]
    ) -> None: ...

class Sessions(Message):
    """[ commands ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    SESSIONS_FIELD_NUMBER: int
    @property
    def Sessions(self) -> RepeatedCompositeFieldContainer[Session]: ...
    def __init__(
        self,
        *,
        Sessions: Iterable[Session] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Sessions", b"Sessions"]
    ) -> None: ...

class RenameReq(Message):
    DESCRIPTOR: Descriptor

    SESSIONID_FIELD_NUMBER: int
    BEACONID_FIELD_NUMBER: int
    NAME_FIELD_NUMBER: int
    SessionID: str
    BeaconID: str
    Name: str
    def __init__(
        self,
        *,
        SessionID: str = ...,
        BeaconID: str = ...,
        Name: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "BeaconID", b"BeaconID", "Name", b"Name", "SessionID", b"SessionID"
        ],
    ) -> None: ...

class GenerateReq(Message):
    DESCRIPTOR: Descriptor

    CONFIG_FIELD_NUMBER: int
    @property
    def Config(self) -> ImplantConfig: ...
    def __init__(
        self,
        *,
        Config: ImplantConfig | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Config", b"Config"]
    ) -> bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Config", b"Config"]
    ) -> None: ...

class Generate(Message):
    DESCRIPTOR: Descriptor

    FILE_FIELD_NUMBER: int
    @property
    def File(self) -> File: ...
    def __init__(
        self,
        *,
        File: File | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["File", b"File"]
    ) -> bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["File", b"File"]
    ) -> None: ...

class MSFReq(Message):
    DESCRIPTOR: Descriptor

    PAYLOAD_FIELD_NUMBER: int
    LHOST_FIELD_NUMBER: int
    LPORT_FIELD_NUMBER: int
    ENCODER_FIELD_NUMBER: int
    ITERATIONS_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    Payload: str
    LHost: str
    LPort: int
    Encoder: str
    Iterations: int
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        Payload: str = ...,
        LHost: str = ...,
        LPort: int = ...,
        Encoder: str = ...,
        Iterations: int = ...,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Request", b"Request"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Encoder",
            b"Encoder",
            "Iterations",
            b"Iterations",
            "LHost",
            b"LHost",
            "LPort",
            b"LPort",
            "Payload",
            b"Payload",
            "Request",
            b"Request",
        ],
    ) -> None: ...

class MSFRemoteReq(Message):
    DESCRIPTOR: Descriptor

    PAYLOAD_FIELD_NUMBER: int
    LHOST_FIELD_NUMBER: int
    LPORT_FIELD_NUMBER: int
    ENCODER_FIELD_NUMBER: int
    ITERATIONS_FIELD_NUMBER: int
    PID_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    Payload: str
    LHost: str
    LPort: int
    Encoder: str
    Iterations: int
    PID: int
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        Payload: str = ...,
        LHost: str = ...,
        LPort: int = ...,
        Encoder: str = ...,
        Iterations: int = ...,
        PID: int = ...,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Request", b"Request"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Encoder",
            b"Encoder",
            "Iterations",
            b"Iterations",
            "LHost",
            b"LHost",
            "LPort",
            b"LPort",
            "PID",
            b"PID",
            "Payload",
            b"Payload",
            "Request",
            b"Request",
        ],
    ) -> None: ...

class StagerListenerReq(Message):
    DESCRIPTOR: Descriptor

    PROTOCOL_FIELD_NUMBER: int
    HOST_FIELD_NUMBER: int
    PORT_FIELD_NUMBER: int
    DATA_FIELD_NUMBER: int
    CERT_FIELD_NUMBER: int
    KEY_FIELD_NUMBER: int
    ACME_FIELD_NUMBER: int
    Protocol: StageProtocol.ValueType
    Host: str
    Port: int
    Data: bytes
    Cert: bytes
    Key: bytes
    ACME: bool
    def __init__(
        self,
        *,
        Protocol: StageProtocol.ValueType = ...,
        Host: str = ...,
        Port: int = ...,
        Data: bytes = ...,
        Cert: bytes = ...,
        Key: bytes = ...,
        ACME: bool = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "ACME",
            b"ACME",
            "Cert",
            b"Cert",
            "Data",
            b"Data",
            "Host",
            b"Host",
            "Key",
            b"Key",
            "Port",
            b"Port",
            "Protocol",
            b"Protocol",
        ],
    ) -> None: ...

class StagerListener(Message):
    DESCRIPTOR: Descriptor

    JOBID_FIELD_NUMBER: int
    JobID: int
    def __init__(
        self,
        *,
        JobID: int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["JobID", b"JobID"]
    ) -> None: ...

class ShellcodeRDIReq(Message):
    DESCRIPTOR: Descriptor

    DATA_FIELD_NUMBER: int
    FUNCTIONNAME_FIELD_NUMBER: int
    ARGUMENTS_FIELD_NUMBER: int
    Data: bytes
    FunctionName: str
    Arguments: str
    def __init__(
        self,
        *,
        Data: bytes = ...,
        FunctionName: str = ...,
        Arguments: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Arguments", b"Arguments", "Data", b"Data", "FunctionName", b"FunctionName"
        ],
    ) -> None: ...

class ShellcodeRDI(Message):
    DESCRIPTOR: Descriptor

    DATA_FIELD_NUMBER: int
    Data: bytes
    def __init__(
        self,
        *,
        Data: bytes = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Data", b"Data"]
    ) -> None: ...

class MsfStagerReq(Message):
    DESCRIPTOR: Descriptor

    ARCH_FIELD_NUMBER: int
    FORMAT_FIELD_NUMBER: int
    PORT_FIELD_NUMBER: int
    HOST_FIELD_NUMBER: int
    OS_FIELD_NUMBER: int
    PROTOCOL_FIELD_NUMBER: int
    BADCHARS_FIELD_NUMBER: int
    Arch: str
    Format: str
    Port: int
    Host: str
    OS: str
    """reserved for future usage"""
    Protocol: StageProtocol.ValueType
    @property
    def BadChars(self) -> RepeatedScalarFieldContainer[str]: ...
    def __init__(
        self,
        *,
        Arch: str = ...,
        Format: str = ...,
        Port: int = ...,
        Host: str = ...,
        OS: str = ...,
        Protocol: StageProtocol.ValueType = ...,
        BadChars: Iterable[str] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Arch",
            b"Arch",
            "BadChars",
            b"BadChars",
            "Format",
            b"Format",
            "Host",
            b"Host",
            "OS",
            b"OS",
            "Port",
            b"Port",
            "Protocol",
            b"Protocol",
        ],
    ) -> None: ...

class MsfStager(Message):
    DESCRIPTOR: Descriptor

    FILE_FIELD_NUMBER: int
    @property
    def File(self) -> File: ...
    def __init__(
        self,
        *,
        File: File | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["File", b"File"]
    ) -> bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["File", b"File"]
    ) -> None: ...

class GetSystemReq(Message):
    """GetSystemReq - Client request to the server which is translated into
    InvokeSystemReq when sending to the implant.
    """

    DESCRIPTOR: Descriptor

    HOSTINGPROCESS_FIELD_NUMBER: int
    CONFIG_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    HostingProcess: str
    @property
    def Config(self) -> ImplantConfig: ...
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        HostingProcess: str = ...,
        Config: ImplantConfig | None = ...,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "Config", b"Config", "Request", b"Request"
        ],
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Config",
            b"Config",
            "HostingProcess",
            b"HostingProcess",
            "Request",
            b"Request",
        ],
    ) -> None: ...

class MigrateReq(Message):
    """MigrateReq - Client request to the server which is translated into
    InvokeMigrateReq when sending to the implant.
    """

    DESCRIPTOR: Descriptor

    PID_FIELD_NUMBER: int
    CONFIG_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    Pid: int
    @property
    def Config(self) -> ImplantConfig: ...
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        Pid: int = ...,
        Config: ImplantConfig | None = ...,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "Config", b"Config", "Request", b"Request"
        ],
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Config", b"Config", "Pid", b"Pid", "Request", b"Request"
        ],
    ) -> None: ...

class CreateTunnelReq(Message):
    """[ Tunnels ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    REQUEST_FIELD_NUMBER: int
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Request", b"Request"]
    ) -> bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Request", b"Request"]
    ) -> None: ...

class CreateTunnel(Message):
    DESCRIPTOR: Descriptor

    SESSIONID_FIELD_NUMBER: int
    TUNNELID_FIELD_NUMBER: int
    SessionID: int
    TunnelID: int
    def __init__(
        self,
        *,
        SessionID: int = ...,
        TunnelID: int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "SessionID", b"SessionID", "TunnelID", b"TunnelID"
        ],
    ) -> None: ...

class CloseTunnelReq(Message):
    DESCRIPTOR: Descriptor

    TUNNELID_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    TunnelID: int
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        TunnelID: int = ...,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Request", b"Request"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Request", b"Request", "TunnelID", b"TunnelID"
        ],
    ) -> None: ...

class PivotGraphEntry(Message):
    """[ Pivots ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    PEERID_FIELD_NUMBER: int
    SESSION_FIELD_NUMBER: int
    NAME_FIELD_NUMBER: int
    CHILDREN_FIELD_NUMBER: int
    PeerID: int
    @property
    def Session(self) -> Session: ...
    Name: str
    @property
    def Children(self) -> RepeatedCompositeFieldContainer[PivotGraphEntry]: ...
    def __init__(
        self,
        *,
        PeerID: int = ...,
        Session: Session | None = ...,
        Name: str = ...,
        Children: Iterable[PivotGraphEntry] | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Session", b"Session"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Children",
            b"Children",
            "Name",
            b"Name",
            "PeerID",
            b"PeerID",
            "Session",
            b"Session",
        ],
    ) -> None: ...

class PivotGraph(Message):
    DESCRIPTOR: Descriptor

    CHILDREN_FIELD_NUMBER: int
    @property
    def Children(self) -> RepeatedCompositeFieldContainer[PivotGraphEntry]: ...
    def __init__(
        self,
        *,
        Children: Iterable[PivotGraphEntry] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Children", b"Children"]
    ) -> None: ...

class Client(Message):
    """[ Events ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    ID_FIELD_NUMBER: int
    NAME_FIELD_NUMBER: int
    OPERATOR_FIELD_NUMBER: int
    ID: int
    Name: str
    @property
    def Operator(self) -> Operator: ...
    def __init__(
        self,
        *,
        ID: int = ...,
        Name: str = ...,
        Operator: Operator | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Operator", b"Operator"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "ID", b"ID", "Name", b"Name", "Operator", b"Operator"
        ],
    ) -> None: ...

class Event(Message):
    DESCRIPTOR: Descriptor

    EVENTTYPE_FIELD_NUMBER: int
    SESSION_FIELD_NUMBER: int
    JOB_FIELD_NUMBER: int
    CLIENT_FIELD_NUMBER: int
    DATA_FIELD_NUMBER: int
    ERR_FIELD_NUMBER: int
    EventType: str
    @property
    def Session(self) -> Session: ...
    @property
    def Job(self) -> Job: ...
    @property
    def Client(self) -> Client: ...
    Data: bytes
    Err: str
    """Can't trigger normal gRPC error"""
    def __init__(
        self,
        *,
        EventType: str = ...,
        Session: Session | None = ...,
        Job: Job | None = ...,
        Client: Client | None = ...,
        Data: bytes = ...,
        Err: str = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "Client", b"Client", "Job", b"Job", "Session", b"Session"
        ],
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Client",
            b"Client",
            "Data",
            b"Data",
            "Err",
            b"Err",
            "EventType",
            b"EventType",
            "Job",
            b"Job",
            "Session",
            b"Session",
        ],
    ) -> None: ...

class Operators(Message):
    DESCRIPTOR: Descriptor

    OPERATORS_FIELD_NUMBER: int
    @property
    def Operators(self) -> RepeatedCompositeFieldContainer[Operator]: ...
    def __init__(
        self,
        *,
        Operators: Iterable[Operator] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Operators", b"Operators"]
    ) -> None: ...

class Operator(Message):
    DESCRIPTOR: Descriptor

    ONLINE_FIELD_NUMBER: int
    NAME_FIELD_NUMBER: int
    Online: bool
    Name: str
    def __init__(
        self,
        *,
        Online: bool = ...,
        Name: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal["Name", b"Name", "Online", b"Online"],
    ) -> None: ...

class WebContent(Message):
    """[ Websites ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    PATH_FIELD_NUMBER: int
    CONTENTTYPE_FIELD_NUMBER: int
    SIZE_FIELD_NUMBER: int
    CONTENT_FIELD_NUMBER: int
    Path: str
    ContentType: str
    Size: int
    Content: bytes
    def __init__(
        self,
        *,
        Path: str = ...,
        ContentType: str = ...,
        Size: int = ...,
        Content: bytes = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Content",
            b"Content",
            "ContentType",
            b"ContentType",
            "Path",
            b"Path",
            "Size",
            b"Size",
        ],
    ) -> None: ...

class WebsiteAddContent(Message):
    DESCRIPTOR: Descriptor

    class ContentsEntry(Message):
        DESCRIPTOR: Descriptor

        KEY_FIELD_NUMBER: int
        VALUE_FIELD_NUMBER: int
        key: str
        @property
        def value(self) -> WebContent: ...
        def __init__(
            self,
            *,
            key: str = ...,
            value: WebContent | None = ...,
        ) -> None: ...
        def HasField(
            self, field_name: typing_extensions.Literal["value", b"value"]
        ) -> bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

    NAME_FIELD_NUMBER: int
    CONTENTS_FIELD_NUMBER: int
    Name: str
    @property
    def Contents(self) -> MessageMap[str, WebContent]: ...
    def __init__(
        self,
        *,
        Name: str = ...,
        Contents: Mapping[str, WebContent] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal["Contents", b"Contents", "Name", b"Name"],
    ) -> None: ...

class WebsiteRemoveContent(Message):
    DESCRIPTOR: Descriptor

    NAME_FIELD_NUMBER: int
    PATHS_FIELD_NUMBER: int
    Name: str
    @property
    def Paths(self) -> RepeatedScalarFieldContainer[str]: ...
    def __init__(
        self,
        *,
        Name: str = ...,
        Paths: Iterable[str] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Name", b"Name", "Paths", b"Paths"]
    ) -> None: ...

class Website(Message):
    DESCRIPTOR: Descriptor

    class ContentsEntry(Message):
        DESCRIPTOR: Descriptor

        KEY_FIELD_NUMBER: int
        VALUE_FIELD_NUMBER: int
        key: str
        @property
        def value(self) -> WebContent: ...
        def __init__(
            self,
            *,
            key: str = ...,
            value: WebContent | None = ...,
        ) -> None: ...
        def HasField(
            self, field_name: typing_extensions.Literal["value", b"value"]
        ) -> bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

    NAME_FIELD_NUMBER: int
    CONTENTS_FIELD_NUMBER: int
    Name: str
    @property
    def Contents(self) -> MessageMap[str, WebContent]: ...
    def __init__(
        self,
        *,
        Name: str = ...,
        Contents: Mapping[str, WebContent] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal["Contents", b"Contents", "Name", b"Name"],
    ) -> None: ...

class Websites(Message):
    DESCRIPTOR: Descriptor

    WEBSITES_FIELD_NUMBER: int
    @property
    def Websites(self) -> RepeatedCompositeFieldContainer[Website]: ...
    def __init__(
        self,
        *,
        Websites: Iterable[Website] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Websites", b"Websites"]
    ) -> None: ...

class WGClientConfig(Message):
    """[ Wireguard ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    SERVERPUBKEY_FIELD_NUMBER: int
    CLIENTPRIVATEKEY_FIELD_NUMBER: int
    CLIENTPUBKEY_FIELD_NUMBER: int
    CLIENTIP_FIELD_NUMBER: int
    ServerPubKey: str
    ClientPrivateKey: str
    ClientPubKey: str
    ClientIP: str
    def __init__(
        self,
        *,
        ServerPubKey: str = ...,
        ClientPrivateKey: str = ...,
        ClientPubKey: str = ...,
        ClientIP: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "ClientIP",
            b"ClientIP",
            "ClientPrivateKey",
            b"ClientPrivateKey",
            "ClientPubKey",
            b"ClientPubKey",
            "ServerPubKey",
            b"ServerPubKey",
        ],
    ) -> None: ...

class Credential(Message):
    DESCRIPTOR: Descriptor

    USER_FIELD_NUMBER: int
    PASSWORD_FIELD_NUMBER: int
    APIKEY_FIELD_NUMBER: int
    User: str
    """USER_PASSWORD"""
    Password: str
    APIKey: str
    """API_KEY"""
    def __init__(
        self,
        *,
        User: str = ...,
        Password: str = ...,
        APIKey: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "APIKey", b"APIKey", "Password", b"Password", "User", b"User"
        ],
    ) -> None: ...

class Loot(Message):
    DESCRIPTOR: Descriptor

    TYPE_FIELD_NUMBER: int
    LOOTID_FIELD_NUMBER: int
    NAME_FIELD_NUMBER: int
    CREDENTIALTYPE_FIELD_NUMBER: int
    CREDENTIAL_FIELD_NUMBER: int
    FILETYPE_FIELD_NUMBER: int
    FILE_FIELD_NUMBER: int
    Type: LootType.ValueType
    LootID: str
    Name: str
    CredentialType: CredentialType.ValueType
    @property
    def Credential(self) -> Credential: ...
    FileType: FileType.ValueType
    @property
    def File(self) -> File: ...
    def __init__(
        self,
        *,
        Type: LootType.ValueType = ...,
        LootID: str = ...,
        Name: str = ...,
        CredentialType: CredentialType.ValueType = ...,
        Credential: Credential | None = ...,
        FileType: FileType.ValueType = ...,
        File: File | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "Credential", b"Credential", "File", b"File"
        ],
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Credential",
            b"Credential",
            "CredentialType",
            b"CredentialType",
            "File",
            b"File",
            "FileType",
            b"FileType",
            "LootID",
            b"LootID",
            "Name",
            b"Name",
            "Type",
            b"Type",
        ],
    ) -> None: ...

class AllLoot(Message):
    DESCRIPTOR: Descriptor

    LOOT_FIELD_NUMBER: int
    @property
    def Loot(self) -> RepeatedCompositeFieldContainer[Loot]: ...
    def __init__(
        self,
        *,
        Loot: Iterable[Loot] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Loot", b"Loot"]
    ) -> None: ...

class IOC(Message):
    """[ Hosts ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    PATH_FIELD_NUMBER: int
    FILEHASH_FIELD_NUMBER: int
    ID_FIELD_NUMBER: int
    Path: str
    FileHash: str
    ID: str
    def __init__(
        self,
        *,
        Path: str = ...,
        FileHash: str = ...,
        ID: str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "FileHash", b"FileHash", "ID", b"ID", "Path", b"Path"
        ],
    ) -> None: ...

class ExtensionData(Message):
    DESCRIPTOR: Descriptor

    OUTPUT_FIELD_NUMBER: int
    Output: str
    def __init__(
        self,
        *,
        Output: str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Output", b"Output"]
    ) -> None: ...

class Host(Message):
    DESCRIPTOR: Descriptor

    class ExtensionDataEntry(Message):
        DESCRIPTOR: Descriptor

        KEY_FIELD_NUMBER: int
        VALUE_FIELD_NUMBER: int
        key: str
        @property
        def value(self) -> ExtensionData: ...
        def __init__(
            self,
            *,
            key: str = ...,
            value: ExtensionData | None = ...,
        ) -> None: ...
        def HasField(
            self, field_name: typing_extensions.Literal["value", b"value"]
        ) -> bool: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

    HOSTNAME_FIELD_NUMBER: int
    HOSTUUID_FIELD_NUMBER: int
    OSVERSION_FIELD_NUMBER: int
    IOCS_FIELD_NUMBER: int
    EXTENSIONDATA_FIELD_NUMBER: int
    LOCALE_FIELD_NUMBER: int
    FIRSTCONTACT_FIELD_NUMBER: int
    Hostname: str
    HostUUID: str
    OSVersion: str
    @property
    def IOCs(self) -> RepeatedCompositeFieldContainer[IOC]: ...
    @property
    def ExtensionData(self) -> MessageMap[str, ExtensionData]: ...
    Locale: str
    FirstContact: int
    def __init__(
        self,
        *,
        Hostname: str = ...,
        HostUUID: str = ...,
        OSVersion: str = ...,
        IOCs: Iterable[IOC] | None = ...,
        ExtensionData: Mapping[str, ExtensionData] | None = ...,
        Locale: str = ...,
        FirstContact: int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "ExtensionData",
            b"ExtensionData",
            "FirstContact",
            b"FirstContact",
            "HostUUID",
            b"HostUUID",
            "Hostname",
            b"Hostname",
            "IOCs",
            b"IOCs",
            "Locale",
            b"Locale",
            "OSVersion",
            b"OSVersion",
        ],
    ) -> None: ...

class AllHosts(Message):
    DESCRIPTOR: Descriptor

    HOSTS_FIELD_NUMBER: int
    @property
    def Hosts(self) -> RepeatedCompositeFieldContainer[Host]: ...
    def __init__(
        self,
        *,
        Hosts: Iterable[Host] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Hosts", b"Hosts"]
    ) -> None: ...

class DllHijackReq(Message):
    """[ Dll Hijack ] ----------------------------------------"""

    DESCRIPTOR: Descriptor

    REFERENCEDLLPATH_FIELD_NUMBER: int
    TARGETLOCATION_FIELD_NUMBER: int
    REFERENCEDLL_FIELD_NUMBER: int
    TARGETDLL_FIELD_NUMBER: int
    PROFILENAME_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    ReferenceDLLPath: str
    TargetLocation: str
    ReferenceDLL: bytes
    TargetDLL: bytes
    ProfileName: str
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        ReferenceDLLPath: str = ...,
        TargetLocation: str = ...,
        ReferenceDLL: bytes = ...,
        TargetDLL: bytes = ...,
        ProfileName: str = ...,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Request", b"Request"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "ProfileName",
            b"ProfileName",
            "ReferenceDLL",
            b"ReferenceDLL",
            "ReferenceDLLPath",
            b"ReferenceDLLPath",
            "Request",
            b"Request",
            "TargetDLL",
            b"TargetDLL",
            "TargetLocation",
            b"TargetLocation",
        ],
    ) -> None: ...

class DllHijack(Message):
    DESCRIPTOR: Descriptor

    RESPONSE_FIELD_NUMBER: int
    @property
    def Response(self) -> Response: ...
    def __init__(
        self,
        *,
        Response: Response | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Response", b"Response"]
    ) -> bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Response", b"Response"]
    ) -> None: ...

class ShellcodeEncodeReq(Message):
    DESCRIPTOR: Descriptor

    ENCODER_FIELD_NUMBER: int
    ARCHITECTURE_FIELD_NUMBER: int
    ITERATIONS_FIELD_NUMBER: int
    BADCHARS_FIELD_NUMBER: int
    DATA_FIELD_NUMBER: int
    REQUEST_FIELD_NUMBER: int
    Encoder: ShellcodeEncoder.ValueType
    Architecture: str
    Iterations: int
    BadChars: bytes
    Data: bytes
    @property
    def Request(self) -> Request: ...
    def __init__(
        self,
        *,
        Encoder: ShellcodeEncoder.ValueType = ...,
        Architecture: str = ...,
        Iterations: int = ...,
        BadChars: bytes = ...,
        Data: bytes = ...,
        Request: Request | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Request", b"Request"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "Architecture",
            b"Architecture",
            "BadChars",
            b"BadChars",
            "Data",
            b"Data",
            "Encoder",
            b"Encoder",
            "Iterations",
            b"Iterations",
            "Request",
            b"Request",
        ],
    ) -> None: ...

class ShellcodeEncode(Message):
    DESCRIPTOR: Descriptor

    DATA_FIELD_NUMBER: int
    RESPONSE_FIELD_NUMBER: int
    Data: bytes
    @property
    def Response(self) -> Response: ...
    def __init__(
        self,
        *,
        Data: bytes = ...,
        Response: Response | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["Response", b"Response"]
    ) -> bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal["Data", b"Data", "Response", b"Response"],
    ) -> None: ...

class ShellcodeEncoderMap(Message):
    DESCRIPTOR: Descriptor

    class EncodersEntry(Message):
        DESCRIPTOR: Descriptor

        KEY_FIELD_NUMBER: int
        VALUE_FIELD_NUMBER: int
        key: str
        value: ShellcodeEncoder.ValueType
        def __init__(
            self,
            *,
            key: str = ...,
            value: ShellcodeEncoder.ValueType = ...,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal["key", b"key", "value", b"value"],
        ) -> None: ...

    ENCODERS_FIELD_NUMBER: int
    @property
    def Encoders(self) -> ScalarMap[str, ShellcodeEncoder.ValueType]: ...
    def __init__(
        self,
        *,
        Encoders: Mapping[str, ShellcodeEncoder.ValueType] | None = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["Encoders", b"Encoders"]
    ) -> None: ...
