// @generated by protoc-gen-es v2.2.3 with parameter "target=ts"
// @generated from file gateway/v1/shard.proto (package gateway.v1, syntax proto3)
/* eslint-disable */

import type { GenFile, GenService } from "@bufbuild/protobuf/codegenv1";
import { fileDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1";
import type { QueryRequestSchema, QueryResponseSchema } from "./query_pb";
import { file_gateway_v1_query } from "./query_pb";
import type { SendCommandRequestSchema, SendCommandResponseSchema } from "./send_command_pb";
import { file_gateway_v1_send_command } from "./send_command_pb";
import type { StartEventStreamRequestSchema, StartEventStreamResponseSchema } from "./start_event_stream_pb";
import { file_gateway_v1_start_event_stream } from "./start_event_stream_pb";
import type { SubscribeEventsRequestSchema, SubscribeEventsResponseSchema } from "./subscribe_events_pb";
import { file_gateway_v1_subscribe_events } from "./subscribe_events_pb";
import type { UnsubscribeEventsRequestSchema, UnsubscribeEventsResponseSchema } from "./unsubscribe_events_pb";
import { file_gateway_v1_unsubscribe_events } from "./unsubscribe_events_pb";

/**
 * Describes the file gateway/v1/shard.proto.
 */
export const file_gateway_v1_shard: GenFile = /*@__PURE__*/
  fileDesc("ChZnYXRld2F5L3YxL3NoYXJkLnByb3RvEgpnYXRld2F5LnYxMsUDCgxTaGFyZFNlcnZpY2USUAoLU2VuZENvbW1hbmQSHi5nYXRld2F5LnYxLlNlbmRDb21tYW5kUmVxdWVzdBofLmdhdGV3YXkudjEuU2VuZENvbW1hbmRSZXNwb25zZSIAEj4KBVF1ZXJ5EhguZ2F0ZXdheS52MS5RdWVyeVJlcXVlc3QaGS5nYXRld2F5LnYxLlF1ZXJ5UmVzcG9uc2UiABJhChBTdGFydEV2ZW50U3RyZWFtEiMuZ2F0ZXdheS52MS5TdGFydEV2ZW50U3RyZWFtUmVxdWVzdBokLmdhdGV3YXkudjEuU3RhcnRFdmVudFN0cmVhbVJlc3BvbnNlIgAwARJcCg9TdWJzY3JpYmVFdmVudHMSIi5nYXRld2F5LnYxLlN1YnNjcmliZUV2ZW50c1JlcXVlc3QaIy5nYXRld2F5LnYxLlN1YnNjcmliZUV2ZW50c1Jlc3BvbnNlIgASYgoRVW5zdWJzY3JpYmVFdmVudHMSJC5nYXRld2F5LnYxLlVuc3Vic2NyaWJlRXZlbnRzUmVxdWVzdBolLmdhdGV3YXkudjEuVW5zdWJzY3JpYmVFdmVudHNSZXNwb25zZSIAQkBaPmdpdGh1Yi5jb20vYXJndXMtbGFicy9nby1lY3MvcHJvdG8vZ2VuL2dvL2dhdGV3YXkvdjE7Z2F0ZXdheXYxYgZwcm90bzM", [file_gateway_v1_query, file_gateway_v1_send_command, file_gateway_v1_start_event_stream, file_gateway_v1_subscribe_events, file_gateway_v1_unsubscribe_events]);

/**
 * ShardService provides the core functionality for interacting with Cardinal shards.
 *
 * @generated from service gateway.v1.ShardService
 */
export const ShardService: GenService<{
  /**
   * SendCommand sends a command to a specific shard.
   *
   * @generated from rpc gateway.v1.ShardService.SendCommand
   */
  sendCommand: {
    methodKind: "unary";
    input: typeof SendCommandRequestSchema;
    output: typeof SendCommandResponseSchema;
  },
  /**
   * Query retrieves the current state or information from a specific shard.
   *
   * @generated from rpc gateway.v1.ShardService.Query
   */
  query: {
    methodKind: "unary";
    input: typeof QueryRequestSchema;
    output: typeof QueryResponseSchema;
  },
  /**
   * StartEventStream establishes a stream of events from specified shards. Clients can subscribe to
   * specific event types and receive real-time updates.
   *
   * @generated from rpc gateway.v1.ShardService.StartEventStream
   */
  startEventStream: {
    methodKind: "server_streaming";
    input: typeof StartEventStreamRequestSchema;
    output: typeof StartEventStreamResponseSchema;
  },
  /**
   * SubscribeEvents adds new event types to an existing event stream.
   *
   * @generated from rpc gateway.v1.ShardService.SubscribeEvents
   */
  subscribeEvents: {
    methodKind: "unary";
    input: typeof SubscribeEventsRequestSchema;
    output: typeof SubscribeEventsResponseSchema;
  },
  /**
   * UnsubscribeEvents removes event types from an existing event stream.
   *
   * @generated from rpc gateway.v1.ShardService.UnsubscribeEvents
   */
  unsubscribeEvents: {
    methodKind: "unary";
    input: typeof UnsubscribeEventsRequestSchema;
    output: typeof UnsubscribeEventsResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_gateway_v1_shard, 0);

