# Note: this file must be for now manually (re)generated until protoc can
# generate type hints.

import typing

from . import simulation_pb2

class SimulationStub:
    def __init__(self, channel: typing.Any) -> None: ...
    def Build(
        self, request: simulation_pb2.BuildRequest
    ) -> simulation_pb2.BuildReply: ...
    def Init(self, request: simulation_pb2.InitRequest) -> simulation_pb2.InitReply: ...
    def InitAndRun(
        self, request: simulation_pb2.InitAndRunRequest
    ) -> simulation_pb2.InitAndRunReply: ...
    def Halt(self, request: simulation_pb2.HaltRequest) -> simulation_pb2.HaltReply: ...
    def Terminate(
        self, request: simulation_pb2.TerminateRequest
    ) -> simulation_pb2.TerminateReply: ...
    def Save(self, request: simulation_pb2.SaveRequest) -> simulation_pb2.SaveReply: ...
    def Restore(
        self, request: simulation_pb2.RestoreRequest
    ) -> simulation_pb2.RestoreReply: ...
    def RestoreAndRun(
        self, request: simulation_pb2.RestoreAndRunRequest
    ) -> simulation_pb2.RestoreAndRunReply: ...
    def Time(self, request: simulation_pb2.TimeRequest) -> simulation_pb2.TimeReply: ...
    def Step(self, request: simulation_pb2.StepRequest) -> simulation_pb2.StepReply: ...
    def StepUntil(
        self, request: simulation_pb2.StepUntilRequest
    ) -> simulation_pb2.StepUntilReply: ...
    def Run(self, request: simulation_pb2.RunRequest) -> simulation_pb2.RunReply: ...
    def ListEventSources(
        self, request: simulation_pb2.ListEventSourcesRequest
    ) -> simulation_pb2.ListEventSourcesReply: ...
    def GetEventSourceSchemas(
        self, request: simulation_pb2.GetEventSourceSchemasRequest
    ) -> simulation_pb2.GetEventSourceSchemasReply: ...
    def ListQuerySources(
        self, request: simulation_pb2.ListQuerySourcesRequest
    ) -> simulation_pb2.ListQuerySourcesReply: ...
    def GetQuerySourceSchemas(
        self, request: simulation_pb2.GetQuerySourceSchemasRequest
    ) -> simulation_pb2.GetQuerySourceSchemasReply: ...
    def ListEventSinks(
        self, request: simulation_pb2.ListEventSinksRequest
    ) -> simulation_pb2.ListEventSinksReply: ...
    def GetEventSinkSchemas(
        self, request: simulation_pb2.GetEventSinkSchemasRequest
    ) -> simulation_pb2.GetEventSinkSchemasReply: ...
    def InjectEvent(
            self, request: simulation_pb2.InjectEventRequest
    ) -> simulation_pb2.InjectEventReply: ...
    def ScheduleEvent(
        self, request: simulation_pb2.ScheduleEventRequest
    ) -> simulation_pb2.ScheduleEventReply: ...
    def CancelEvent(
        self, request: simulation_pb2.CancelEventRequest
    ) -> simulation_pb2.CancelEventReply: ...
    def ProcessEvent(
        self, request: simulation_pb2.ProcessEventRequest
    ) -> simulation_pb2.ProcessEventReply: ...
    def ProcessQuery(
        self, request: simulation_pb2.ProcessQueryRequest
    ) -> simulation_pb2.ProcessQueryReply: ...
    def TryReadEvents(
        self, request: simulation_pb2.TryReadEventsRequest
    ) -> simulation_pb2.TryReadEventsReply: ...
    def ReadEvent(
        self, request: simulation_pb2.ReadEventRequest
    ) -> simulation_pb2.ReadEventReply: ...
    def EnableSink(
        self, request: simulation_pb2.EnableSinkRequest
    ) -> simulation_pb2.EnableSinkReply: ...
    def DisableSink(
        self, request: simulation_pb2.DisableSinkRequest
    ) -> simulation_pb2.DisableSinkReply: ...
