"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import abc
from ..clientpb import client_pb2
import collections.abc
from ..commonpb import common_pb2
import grpc
from ..sliverpb import sliver_pb2

class SliverRPCStub:
    def __init__(self, channel: grpc.aio.Channel) -> None: ...
    GetVersion: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.Version,
    ]
    """*** Version ***"""
    GetOperators: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.Operators,
    ]
    """*** Operator Commands ***"""
    Kill: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.KillReq,
        common_pb2.Empty,
    ]
    """*** Generic ***"""
    Reconfigure: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.ReconfigureReq,
        sliver_pb2.Reconfigure,
    ]
    Rename: grpc.UnaryUnaryMultiCallable[
        client_pb2.RenameReq,
        common_pb2.Empty,
    ]
    GetSessions: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.Sessions,
    ]
    """*** Sessions ***"""
    GetBeacons: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.Beacons,
    ]
    """*** Beacons ***"""
    GetBeacon: grpc.UnaryUnaryMultiCallable[
        client_pb2.Beacon,
        client_pb2.Beacon,
    ]
    RmBeacon: grpc.UnaryUnaryMultiCallable[
        client_pb2.Beacon,
        common_pb2.Empty,
    ]
    GetBeaconTasks: grpc.UnaryUnaryMultiCallable[
        client_pb2.Beacon,
        client_pb2.BeaconTasks,
    ]
    GetBeaconTaskContent: grpc.UnaryUnaryMultiCallable[
        client_pb2.BeaconTask,
        client_pb2.BeaconTask,
    ]
    CancelBeaconTask: grpc.UnaryUnaryMultiCallable[
        client_pb2.BeaconTask,
        client_pb2.BeaconTask,
    ]
    MonitorStart: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        common_pb2.Response,
    ]
    """***Threat monitoring ***"""
    MonitorStop: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        common_pb2.Empty,
    ]
    GetJobs: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.Jobs,
    ]
    """*** Jobs ***"""
    KillJob: grpc.UnaryUnaryMultiCallable[
        client_pb2.KillJobReq,
        client_pb2.KillJob,
    ]
    StartMTLSListener: grpc.UnaryUnaryMultiCallable[
        client_pb2.MTLSListenerReq,
        client_pb2.MTLSListener,
    ]
    """*** Listeners ***"""
    StartWGListener: grpc.UnaryUnaryMultiCallable[
        client_pb2.WGListenerReq,
        client_pb2.WGListener,
    ]
    StartDNSListener: grpc.UnaryUnaryMultiCallable[
        client_pb2.DNSListenerReq,
        client_pb2.DNSListener,
    ]
    StartHTTPSListener: grpc.UnaryUnaryMultiCallable[
        client_pb2.HTTPListenerReq,
        client_pb2.HTTPListener,
    ]
    StartHTTPListener: grpc.UnaryUnaryMultiCallable[
        client_pb2.HTTPListenerReq,
        client_pb2.HTTPListener,
    ]
    StartTCPStagerListener: grpc.UnaryUnaryMultiCallable[
        client_pb2.StagerListenerReq,
        client_pb2.StagerListener,
    ]
    """*** Stager Listener ***"""
    StartHTTPStagerListener: grpc.UnaryUnaryMultiCallable[
        client_pb2.StagerListenerReq,
        client_pb2.StagerListener,
    ]
    LootAdd: grpc.UnaryUnaryMultiCallable[
        client_pb2.Loot,
        client_pb2.Loot,
    ]
    """*** Loot ***"""
    LootRm: grpc.UnaryUnaryMultiCallable[
        client_pb2.Loot,
        common_pb2.Empty,
    ]
    LootUpdate: grpc.UnaryUnaryMultiCallable[
        client_pb2.Loot,
        client_pb2.Loot,
    ]
    LootContent: grpc.UnaryUnaryMultiCallable[
        client_pb2.Loot,
        client_pb2.Loot,
    ]
    LootAll: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.AllLoot,
    ]
    LootAllOf: grpc.UnaryUnaryMultiCallable[
        client_pb2.Loot,
        client_pb2.AllLoot,
    ]
    Hosts: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.AllHosts,
    ]
    """*** Hosts ***"""
    Host: grpc.UnaryUnaryMultiCallable[
        client_pb2.Host,
        client_pb2.Host,
    ]
    HostRm: grpc.UnaryUnaryMultiCallable[
        client_pb2.Host,
        common_pb2.Empty,
    ]
    HostIOCRm: grpc.UnaryUnaryMultiCallable[
        client_pb2.IOC,
        common_pb2.Empty,
    ]
    Generate: grpc.UnaryUnaryMultiCallable[
        client_pb2.GenerateReq,
        client_pb2.Generate,
    ]
    """*** Implants ***"""
    GenerateExternal: grpc.UnaryUnaryMultiCallable[
        client_pb2.GenerateReq,
        client_pb2.ExternalImplantConfig,
    ]
    GenerateExternalSaveBuild: grpc.UnaryUnaryMultiCallable[
        client_pb2.ExternalImplantBinary,
        common_pb2.Empty,
    ]
    GenerateExternalGetImplantConfig: grpc.UnaryUnaryMultiCallable[
        client_pb2.ImplantConfig,
        client_pb2.ExternalImplantConfig,
    ]
    Regenerate: grpc.UnaryUnaryMultiCallable[
        client_pb2.RegenerateReq,
        client_pb2.Generate,
    ]
    ImplantBuilds: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.ImplantBuilds,
    ]
    DeleteImplantBuild: grpc.UnaryUnaryMultiCallable[
        client_pb2.DeleteReq,
        common_pb2.Empty,
    ]
    Canaries: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.Canaries,
    ]
    GenerateWGClientConfig: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.WGClientConfig,
    ]
    GenerateUniqueIP: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.UniqueWGIP,
    ]
    ImplantProfiles: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.ImplantProfiles,
    ]
    DeleteImplantProfile: grpc.UnaryUnaryMultiCallable[
        client_pb2.DeleteReq,
        common_pb2.Empty,
    ]
    SaveImplantProfile: grpc.UnaryUnaryMultiCallable[
        client_pb2.ImplantProfile,
        client_pb2.ImplantProfile,
    ]
    MsfStage: grpc.UnaryUnaryMultiCallable[
        client_pb2.MsfStagerReq,
        client_pb2.MsfStager,
    ]
    ShellcodeRDI: grpc.UnaryUnaryMultiCallable[
        client_pb2.ShellcodeRDIReq,
        client_pb2.ShellcodeRDI,
    ]
    GetCompiler: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.Compiler,
    ]
    ShellcodeEncoder: grpc.UnaryUnaryMultiCallable[
        client_pb2.ShellcodeEncodeReq,
        client_pb2.ShellcodeEncode,
    ]
    ShellcodeEncoderMap: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.ShellcodeEncoderMap,
    ]
    Websites: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.Websites,
    ]
    """*** Websites ***"""
    Website: grpc.UnaryUnaryMultiCallable[
        client_pb2.Website,
        client_pb2.Website,
    ]
    WebsiteRemove: grpc.UnaryUnaryMultiCallable[
        client_pb2.Website,
        common_pb2.Empty,
    ]
    WebsiteAddContent: grpc.UnaryUnaryMultiCallable[
        client_pb2.WebsiteAddContent,
        client_pb2.Website,
    ]
    WebsiteUpdateContent: grpc.UnaryUnaryMultiCallable[
        client_pb2.WebsiteAddContent,
        client_pb2.Website,
    ]
    WebsiteRemoveContent: grpc.UnaryUnaryMultiCallable[
        client_pb2.WebsiteRemoveContent,
        client_pb2.Website,
    ]
    Ping: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.Ping,
        sliver_pb2.Ping,
    ]
    """*** Session Interactions ***"""
    Ps: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.PsReq,
        sliver_pb2.Ps,
    ]
    Terminate: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.TerminateReq,
        sliver_pb2.Terminate,
    ]
    Ifconfig: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.IfconfigReq,
        sliver_pb2.Ifconfig,
    ]
    Netstat: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.NetstatReq,
        sliver_pb2.Netstat,
    ]
    Ls: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.LsReq,
        sliver_pb2.Ls,
    ]
    Cd: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.CdReq,
        sliver_pb2.Pwd,
    ]
    Pwd: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.PwdReq,
        sliver_pb2.Pwd,
    ]
    Mv: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.MvReq,
        sliver_pb2.Mv,
    ]
    Rm: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RmReq,
        sliver_pb2.Rm,
    ]
    Mkdir: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.MkdirReq,
        sliver_pb2.Mkdir,
    ]
    Download: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.DownloadReq,
        sliver_pb2.Download,
    ]
    Upload: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.UploadReq,
        sliver_pb2.Upload,
    ]
    ProcessDump: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.ProcessDumpReq,
        sliver_pb2.ProcessDump,
    ]
    RunAs: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RunAsReq,
        sliver_pb2.RunAs,
    ]
    Impersonate: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.ImpersonateReq,
        sliver_pb2.Impersonate,
    ]
    RevToSelf: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RevToSelfReq,
        sliver_pb2.RevToSelf,
    ]
    GetSystem: grpc.UnaryUnaryMultiCallable[
        client_pb2.GetSystemReq,
        sliver_pb2.GetSystem,
    ]
    Task: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.TaskReq,
        sliver_pb2.Task,
    ]
    Msf: grpc.UnaryUnaryMultiCallable[
        client_pb2.MSFReq,
        sliver_pb2.Task,
    ]
    MsfRemote: grpc.UnaryUnaryMultiCallable[
        client_pb2.MSFRemoteReq,
        sliver_pb2.Task,
    ]
    ExecuteAssembly: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.ExecuteAssemblyReq,
        sliver_pb2.ExecuteAssembly,
    ]
    Migrate: grpc.UnaryUnaryMultiCallable[
        client_pb2.MigrateReq,
        sliver_pb2.Migrate,
    ]
    Execute: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.ExecuteReq,
        sliver_pb2.Execute,
    ]
    ExecuteWindows: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.ExecuteWindowsReq,
        sliver_pb2.Execute,
    ]
    Sideload: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.SideloadReq,
        sliver_pb2.Sideload,
    ]
    SpawnDll: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.InvokeSpawnDllReq,
        sliver_pb2.SpawnDll,
    ]
    Screenshot: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.ScreenshotReq,
        sliver_pb2.Screenshot,
    ]
    CurrentTokenOwner: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.CurrentTokenOwnerReq,
        sliver_pb2.CurrentTokenOwner,
    ]
    PivotStartListener: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.PivotStartListenerReq,
        sliver_pb2.PivotListener,
    ]
    """*** Pivots ***"""
    PivotStopListener: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.PivotStopListenerReq,
        common_pb2.Empty,
    ]
    PivotSessionListeners: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.PivotListenersReq,
        sliver_pb2.PivotListeners,
    ]
    PivotGraph: grpc.UnaryUnaryMultiCallable[
        common_pb2.Empty,
        client_pb2.PivotGraph,
    ]
    StartService: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.StartServiceReq,
        sliver_pb2.ServiceInfo,
    ]
    StopService: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.StopServiceReq,
        sliver_pb2.ServiceInfo,
    ]
    RemoveService: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RemoveServiceReq,
        sliver_pb2.ServiceInfo,
    ]
    MakeToken: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.MakeTokenReq,
        sliver_pb2.MakeToken,
    ]
    GetEnv: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.EnvReq,
        sliver_pb2.EnvInfo,
    ]
    SetEnv: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.SetEnvReq,
        sliver_pb2.SetEnv,
    ]
    UnsetEnv: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.UnsetEnvReq,
        sliver_pb2.UnsetEnv,
    ]
    Backdoor: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.BackdoorReq,
        sliver_pb2.Backdoor,
    ]
    RegistryRead: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RegistryReadReq,
        sliver_pb2.RegistryRead,
    ]
    RegistryWrite: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RegistryWriteReq,
        sliver_pb2.RegistryWrite,
    ]
    RegistryCreateKey: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RegistryCreateKeyReq,
        sliver_pb2.RegistryCreateKey,
    ]
    RegistryDeleteKey: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RegistryDeleteKeyReq,
        sliver_pb2.RegistryDeleteKey,
    ]
    RegistryListSubKeys: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RegistrySubKeyListReq,
        sliver_pb2.RegistrySubKeyList,
    ]
    RegistryListValues: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RegistryListValuesReq,
        sliver_pb2.RegistryValuesList,
    ]
    RunSSHCommand: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.SSHCommandReq,
        sliver_pb2.SSHCommand,
    ]
    HijackDLL: grpc.UnaryUnaryMultiCallable[
        client_pb2.DllHijackReq,
        client_pb2.DllHijack,
    ]
    GetPrivs: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.GetPrivsReq,
        sliver_pb2.GetPrivs,
    ]
    StartRportFwdListener: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RportFwdStartListenerReq,
        sliver_pb2.RportFwdListener,
    ]
    GetRportFwdListeners: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RportFwdListenersReq,
        sliver_pb2.RportFwdListeners,
    ]
    StopRportFwdListener: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RportFwdStopListenerReq,
        sliver_pb2.RportFwdListener,
    ]
    OpenSession: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.OpenSession,
        sliver_pb2.OpenSession,
    ]
    """Beacon only commands"""
    CloseSession: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.CloseSession,
        common_pb2.Empty,
    ]
    RegisterExtension: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.RegisterExtensionReq,
        sliver_pb2.RegisterExtension,
    ]
    """Extensions"""
    CallExtension: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.CallExtensionReq,
        sliver_pb2.CallExtension,
    ]
    ListExtensions: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.ListExtensionsReq,
        sliver_pb2.ListExtensions,
    ]
    WGStartPortForward: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.WGPortForwardStartReq,
        sliver_pb2.WGPortForward,
    ]
    """*** Wireguard Specific ***"""
    WGStopPortForward: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.WGPortForwardStopReq,
        sliver_pb2.WGPortForward,
    ]
    WGStartSocks: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.WGSocksStartReq,
        sliver_pb2.WGSocks,
    ]
    WGStopSocks: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.WGSocksStopReq,
        sliver_pb2.WGSocks,
    ]
    WGListForwarders: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.WGTCPForwardersReq,
        sliver_pb2.WGTCPForwarders,
    ]
    WGListSocksServers: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.WGSocksServersReq,
        sliver_pb2.WGSocksServers,
    ]
    Shell: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.ShellReq,
        sliver_pb2.Shell,
    ]
    """*** Realtime Commands ***"""
    Portfwd: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.PortfwdReq,
        sliver_pb2.Portfwd,
    ]
    CreateSocks: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.Socks,
        sliver_pb2.Socks,
    ]
    """*** Socks5 ***"""
    CloseSocks: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.Socks,
        common_pb2.Empty,
    ]
    SocksProxy: grpc.StreamStreamMultiCallable[
        sliver_pb2.SocksData,
        sliver_pb2.SocksData,
    ]
    CreateTunnel: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.Tunnel,
        sliver_pb2.Tunnel,
    ]
    """*** Tunnels ***"""
    CloseTunnel: grpc.UnaryUnaryMultiCallable[
        sliver_pb2.Tunnel,
        common_pb2.Empty,
    ]
    TunnelData: grpc.StreamStreamMultiCallable[
        sliver_pb2.TunnelData,
        sliver_pb2.TunnelData,
    ]
    Events: grpc.UnaryStreamMultiCallable[
        common_pb2.Empty,
        client_pb2.Event,
    ]
    """*** Events ***"""

class SliverRPCServicer(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def GetVersion(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.Version:
        """*** Version ***"""
    @abc.abstractmethod
    def GetOperators(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.Operators:
        """*** Operator Commands ***"""
    @abc.abstractmethod
    def Kill(
        self,
        request: sliver_pb2.KillReq,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty:
        """*** Generic ***"""
    @abc.abstractmethod
    def Reconfigure(
        self,
        request: sliver_pb2.ReconfigureReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Reconfigure: ...
    @abc.abstractmethod
    def Rename(
        self,
        request: client_pb2.RenameReq,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def GetSessions(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.Sessions:
        """*** Sessions ***"""
    @abc.abstractmethod
    def GetBeacons(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.Beacons:
        """*** Beacons ***"""
    @abc.abstractmethod
    def GetBeacon(
        self,
        request: client_pb2.Beacon,
        context: grpc.ServicerContext,
    ) -> client_pb2.Beacon: ...
    @abc.abstractmethod
    def RmBeacon(
        self,
        request: client_pb2.Beacon,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def GetBeaconTasks(
        self,
        request: client_pb2.Beacon,
        context: grpc.ServicerContext,
    ) -> client_pb2.BeaconTasks: ...
    @abc.abstractmethod
    def GetBeaconTaskContent(
        self,
        request: client_pb2.BeaconTask,
        context: grpc.ServicerContext,
    ) -> client_pb2.BeaconTask: ...
    @abc.abstractmethod
    def CancelBeaconTask(
        self,
        request: client_pb2.BeaconTask,
        context: grpc.ServicerContext,
    ) -> client_pb2.BeaconTask: ...
    @abc.abstractmethod
    def MonitorStart(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> common_pb2.Response:
        """***Threat monitoring ***"""
    @abc.abstractmethod
    def MonitorStop(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def GetJobs(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.Jobs:
        """*** Jobs ***"""
    @abc.abstractmethod
    def KillJob(
        self,
        request: client_pb2.KillJobReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.KillJob: ...
    @abc.abstractmethod
    def StartMTLSListener(
        self,
        request: client_pb2.MTLSListenerReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.MTLSListener:
        """*** Listeners ***"""
    @abc.abstractmethod
    def StartWGListener(
        self,
        request: client_pb2.WGListenerReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.WGListener: ...
    @abc.abstractmethod
    def StartDNSListener(
        self,
        request: client_pb2.DNSListenerReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.DNSListener: ...
    @abc.abstractmethod
    def StartHTTPSListener(
        self,
        request: client_pb2.HTTPListenerReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.HTTPListener: ...
    @abc.abstractmethod
    def StartHTTPListener(
        self,
        request: client_pb2.HTTPListenerReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.HTTPListener: ...
    @abc.abstractmethod
    def StartTCPStagerListener(
        self,
        request: client_pb2.StagerListenerReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.StagerListener:
        """*** Stager Listener ***"""
    @abc.abstractmethod
    def StartHTTPStagerListener(
        self,
        request: client_pb2.StagerListenerReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.StagerListener: ...
    @abc.abstractmethod
    def LootAdd(
        self,
        request: client_pb2.Loot,
        context: grpc.ServicerContext,
    ) -> client_pb2.Loot:
        """*** Loot ***"""
    @abc.abstractmethod
    def LootRm(
        self,
        request: client_pb2.Loot,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def LootUpdate(
        self,
        request: client_pb2.Loot,
        context: grpc.ServicerContext,
    ) -> client_pb2.Loot: ...
    @abc.abstractmethod
    def LootContent(
        self,
        request: client_pb2.Loot,
        context: grpc.ServicerContext,
    ) -> client_pb2.Loot: ...
    @abc.abstractmethod
    def LootAll(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.AllLoot: ...
    @abc.abstractmethod
    def LootAllOf(
        self,
        request: client_pb2.Loot,
        context: grpc.ServicerContext,
    ) -> client_pb2.AllLoot: ...
    @abc.abstractmethod
    def Hosts(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.AllHosts:
        """*** Hosts ***"""
    @abc.abstractmethod
    def Host(
        self,
        request: client_pb2.Host,
        context: grpc.ServicerContext,
    ) -> client_pb2.Host: ...
    @abc.abstractmethod
    def HostRm(
        self,
        request: client_pb2.Host,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def HostIOCRm(
        self,
        request: client_pb2.IOC,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def Generate(
        self,
        request: client_pb2.GenerateReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.Generate:
        """*** Implants ***"""
    @abc.abstractmethod
    def GenerateExternal(
        self,
        request: client_pb2.GenerateReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.ExternalImplantConfig: ...
    @abc.abstractmethod
    def GenerateExternalSaveBuild(
        self,
        request: client_pb2.ExternalImplantBinary,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def GenerateExternalGetImplantConfig(
        self,
        request: client_pb2.ImplantConfig,
        context: grpc.ServicerContext,
    ) -> client_pb2.ExternalImplantConfig: ...
    @abc.abstractmethod
    def Regenerate(
        self,
        request: client_pb2.RegenerateReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.Generate: ...
    @abc.abstractmethod
    def ImplantBuilds(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.ImplantBuilds: ...
    @abc.abstractmethod
    def DeleteImplantBuild(
        self,
        request: client_pb2.DeleteReq,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def Canaries(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.Canaries: ...
    @abc.abstractmethod
    def GenerateWGClientConfig(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.WGClientConfig: ...
    @abc.abstractmethod
    def GenerateUniqueIP(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.UniqueWGIP: ...
    @abc.abstractmethod
    def ImplantProfiles(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.ImplantProfiles: ...
    @abc.abstractmethod
    def DeleteImplantProfile(
        self,
        request: client_pb2.DeleteReq,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def SaveImplantProfile(
        self,
        request: client_pb2.ImplantProfile,
        context: grpc.ServicerContext,
    ) -> client_pb2.ImplantProfile: ...
    @abc.abstractmethod
    def MsfStage(
        self,
        request: client_pb2.MsfStagerReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.MsfStager: ...
    @abc.abstractmethod
    def ShellcodeRDI(
        self,
        request: client_pb2.ShellcodeRDIReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.ShellcodeRDI: ...
    @abc.abstractmethod
    def GetCompiler(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.Compiler: ...
    @abc.abstractmethod
    def ShellcodeEncoder(
        self,
        request: client_pb2.ShellcodeEncodeReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.ShellcodeEncode: ...
    @abc.abstractmethod
    def ShellcodeEncoderMap(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.ShellcodeEncoderMap: ...
    @abc.abstractmethod
    def Websites(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.Websites:
        """*** Websites ***"""
    @abc.abstractmethod
    def Website(
        self,
        request: client_pb2.Website,
        context: grpc.ServicerContext,
    ) -> client_pb2.Website: ...
    @abc.abstractmethod
    def WebsiteRemove(
        self,
        request: client_pb2.Website,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def WebsiteAddContent(
        self,
        request: client_pb2.WebsiteAddContent,
        context: grpc.ServicerContext,
    ) -> client_pb2.Website: ...
    @abc.abstractmethod
    def WebsiteUpdateContent(
        self,
        request: client_pb2.WebsiteAddContent,
        context: grpc.ServicerContext,
    ) -> client_pb2.Website: ...
    @abc.abstractmethod
    def WebsiteRemoveContent(
        self,
        request: client_pb2.WebsiteRemoveContent,
        context: grpc.ServicerContext,
    ) -> client_pb2.Website: ...
    @abc.abstractmethod
    def Ping(
        self,
        request: sliver_pb2.Ping,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Ping:
        """*** Session Interactions ***"""
    @abc.abstractmethod
    def Ps(
        self,
        request: sliver_pb2.PsReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Ps: ...
    @abc.abstractmethod
    def Terminate(
        self,
        request: sliver_pb2.TerminateReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Terminate: ...
    @abc.abstractmethod
    def Ifconfig(
        self,
        request: sliver_pb2.IfconfigReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Ifconfig: ...
    @abc.abstractmethod
    def Netstat(
        self,
        request: sliver_pb2.NetstatReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Netstat: ...
    @abc.abstractmethod
    def Ls(
        self,
        request: sliver_pb2.LsReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Ls: ...
    @abc.abstractmethod
    def Cd(
        self,
        request: sliver_pb2.CdReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Pwd: ...
    @abc.abstractmethod
    def Pwd(
        self,
        request: sliver_pb2.PwdReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Pwd: ...
    @abc.abstractmethod
    def Mv(
        self,
        request: sliver_pb2.MvReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Mv: ...
    @abc.abstractmethod
    def Rm(
        self,
        request: sliver_pb2.RmReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Rm: ...
    @abc.abstractmethod
    def Mkdir(
        self,
        request: sliver_pb2.MkdirReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Mkdir: ...
    @abc.abstractmethod
    def Download(
        self,
        request: sliver_pb2.DownloadReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Download: ...
    @abc.abstractmethod
    def Upload(
        self,
        request: sliver_pb2.UploadReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Upload: ...
    @abc.abstractmethod
    def ProcessDump(
        self,
        request: sliver_pb2.ProcessDumpReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.ProcessDump: ...
    @abc.abstractmethod
    def RunAs(
        self,
        request: sliver_pb2.RunAsReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RunAs: ...
    @abc.abstractmethod
    def Impersonate(
        self,
        request: sliver_pb2.ImpersonateReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Impersonate: ...
    @abc.abstractmethod
    def RevToSelf(
        self,
        request: sliver_pb2.RevToSelfReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RevToSelf: ...
    @abc.abstractmethod
    def GetSystem(
        self,
        request: client_pb2.GetSystemReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.GetSystem: ...
    @abc.abstractmethod
    def Task(
        self,
        request: sliver_pb2.TaskReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Task: ...
    @abc.abstractmethod
    def Msf(
        self,
        request: client_pb2.MSFReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Task: ...
    @abc.abstractmethod
    def MsfRemote(
        self,
        request: client_pb2.MSFRemoteReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Task: ...
    @abc.abstractmethod
    def ExecuteAssembly(
        self,
        request: sliver_pb2.ExecuteAssemblyReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.ExecuteAssembly: ...
    @abc.abstractmethod
    def Migrate(
        self,
        request: client_pb2.MigrateReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Migrate: ...
    @abc.abstractmethod
    def Execute(
        self,
        request: sliver_pb2.ExecuteReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Execute: ...
    @abc.abstractmethod
    def ExecuteWindows(
        self,
        request: sliver_pb2.ExecuteWindowsReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Execute: ...
    @abc.abstractmethod
    def Sideload(
        self,
        request: sliver_pb2.SideloadReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Sideload: ...
    @abc.abstractmethod
    def SpawnDll(
        self,
        request: sliver_pb2.InvokeSpawnDllReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.SpawnDll: ...
    @abc.abstractmethod
    def Screenshot(
        self,
        request: sliver_pb2.ScreenshotReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Screenshot: ...
    @abc.abstractmethod
    def CurrentTokenOwner(
        self,
        request: sliver_pb2.CurrentTokenOwnerReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.CurrentTokenOwner: ...
    @abc.abstractmethod
    def PivotStartListener(
        self,
        request: sliver_pb2.PivotStartListenerReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.PivotListener:
        """*** Pivots ***"""
    @abc.abstractmethod
    def PivotStopListener(
        self,
        request: sliver_pb2.PivotStopListenerReq,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def PivotSessionListeners(
        self,
        request: sliver_pb2.PivotListenersReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.PivotListeners: ...
    @abc.abstractmethod
    def PivotGraph(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> client_pb2.PivotGraph: ...
    @abc.abstractmethod
    def StartService(
        self,
        request: sliver_pb2.StartServiceReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.ServiceInfo: ...
    @abc.abstractmethod
    def StopService(
        self,
        request: sliver_pb2.StopServiceReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.ServiceInfo: ...
    @abc.abstractmethod
    def RemoveService(
        self,
        request: sliver_pb2.RemoveServiceReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.ServiceInfo: ...
    @abc.abstractmethod
    def MakeToken(
        self,
        request: sliver_pb2.MakeTokenReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.MakeToken: ...
    @abc.abstractmethod
    def GetEnv(
        self,
        request: sliver_pb2.EnvReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.EnvInfo: ...
    @abc.abstractmethod
    def SetEnv(
        self,
        request: sliver_pb2.SetEnvReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.SetEnv: ...
    @abc.abstractmethod
    def UnsetEnv(
        self,
        request: sliver_pb2.UnsetEnvReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.UnsetEnv: ...
    @abc.abstractmethod
    def Backdoor(
        self,
        request: sliver_pb2.BackdoorReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Backdoor: ...
    @abc.abstractmethod
    def RegistryRead(
        self,
        request: sliver_pb2.RegistryReadReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RegistryRead: ...
    @abc.abstractmethod
    def RegistryWrite(
        self,
        request: sliver_pb2.RegistryWriteReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RegistryWrite: ...
    @abc.abstractmethod
    def RegistryCreateKey(
        self,
        request: sliver_pb2.RegistryCreateKeyReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RegistryCreateKey: ...
    @abc.abstractmethod
    def RegistryDeleteKey(
        self,
        request: sliver_pb2.RegistryDeleteKeyReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RegistryDeleteKey: ...
    @abc.abstractmethod
    def RegistryListSubKeys(
        self,
        request: sliver_pb2.RegistrySubKeyListReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RegistrySubKeyList: ...
    @abc.abstractmethod
    def RegistryListValues(
        self,
        request: sliver_pb2.RegistryListValuesReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RegistryValuesList: ...
    @abc.abstractmethod
    def RunSSHCommand(
        self,
        request: sliver_pb2.SSHCommandReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.SSHCommand: ...
    @abc.abstractmethod
    def HijackDLL(
        self,
        request: client_pb2.DllHijackReq,
        context: grpc.ServicerContext,
    ) -> client_pb2.DllHijack: ...
    @abc.abstractmethod
    def GetPrivs(
        self,
        request: sliver_pb2.GetPrivsReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.GetPrivs: ...
    @abc.abstractmethod
    def StartRportFwdListener(
        self,
        request: sliver_pb2.RportFwdStartListenerReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RportFwdListener: ...
    @abc.abstractmethod
    def GetRportFwdListeners(
        self,
        request: sliver_pb2.RportFwdListenersReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RportFwdListeners: ...
    @abc.abstractmethod
    def StopRportFwdListener(
        self,
        request: sliver_pb2.RportFwdStopListenerReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RportFwdListener: ...
    @abc.abstractmethod
    def OpenSession(
        self,
        request: sliver_pb2.OpenSession,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.OpenSession:
        """Beacon only commands"""
    @abc.abstractmethod
    def CloseSession(
        self,
        request: sliver_pb2.CloseSession,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def RegisterExtension(
        self,
        request: sliver_pb2.RegisterExtensionReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.RegisterExtension:
        """Extensions"""
    @abc.abstractmethod
    def CallExtension(
        self,
        request: sliver_pb2.CallExtensionReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.CallExtension: ...
    @abc.abstractmethod
    def ListExtensions(
        self,
        request: sliver_pb2.ListExtensionsReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.ListExtensions: ...
    @abc.abstractmethod
    def WGStartPortForward(
        self,
        request: sliver_pb2.WGPortForwardStartReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.WGPortForward:
        """*** Wireguard Specific ***"""
    @abc.abstractmethod
    def WGStopPortForward(
        self,
        request: sliver_pb2.WGPortForwardStopReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.WGPortForward: ...
    @abc.abstractmethod
    def WGStartSocks(
        self,
        request: sliver_pb2.WGSocksStartReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.WGSocks: ...
    @abc.abstractmethod
    def WGStopSocks(
        self,
        request: sliver_pb2.WGSocksStopReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.WGSocks: ...
    @abc.abstractmethod
    def WGListForwarders(
        self,
        request: sliver_pb2.WGTCPForwardersReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.WGTCPForwarders: ...
    @abc.abstractmethod
    def WGListSocksServers(
        self,
        request: sliver_pb2.WGSocksServersReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.WGSocksServers: ...
    @abc.abstractmethod
    def Shell(
        self,
        request: sliver_pb2.ShellReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Shell:
        """*** Realtime Commands ***"""
    @abc.abstractmethod
    def Portfwd(
        self,
        request: sliver_pb2.PortfwdReq,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Portfwd: ...
    @abc.abstractmethod
    def CreateSocks(
        self,
        request: sliver_pb2.Socks,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Socks:
        """*** Socks5 ***"""
    @abc.abstractmethod
    def CloseSocks(
        self,
        request: sliver_pb2.Socks,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def SocksProxy(
        self,
        request_iterator: collections.abc.Iterator[sliver_pb2.SocksData],
        context: grpc.ServicerContext,
    ) -> collections.abc.Iterator[sliver_pb2.SocksData]: ...
    @abc.abstractmethod
    def CreateTunnel(
        self,
        request: sliver_pb2.Tunnel,
        context: grpc.ServicerContext,
    ) -> sliver_pb2.Tunnel:
        """*** Tunnels ***"""
    @abc.abstractmethod
    def CloseTunnel(
        self,
        request: sliver_pb2.Tunnel,
        context: grpc.ServicerContext,
    ) -> common_pb2.Empty: ...
    @abc.abstractmethod
    def TunnelData(
        self,
        request_iterator: collections.abc.Iterator[sliver_pb2.TunnelData],
        context: grpc.ServicerContext,
    ) -> collections.abc.Iterator[sliver_pb2.TunnelData]: ...
    @abc.abstractmethod
    def Events(
        self,
        request: common_pb2.Empty,
        context: grpc.ServicerContext,
    ) -> collections.abc.Iterator[client_pb2.Event]:
        """*** Events ***"""

def add_SliverRPCServicer_to_server(
    servicer: SliverRPCServicer, server: grpc.Server
) -> None: ...
