// @generated by protoc-gen-es v2.13.0 with parameter "target=ts,import_extension=js"
// @generated from file soulfire/sdk.proto (package soulfire.v1, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_soulfire_api_docs } from "./api_docs_pb.js";
import type { UserRole } from "./common_pb.js";
import { file_soulfire_common } from "./common_pb.js";
import type { PluginApiDescriptor } from "./plugin_api_pb.js";
import { file_soulfire_plugin_api } from "./plugin_api_pb.js";
import { file_google_api_annotations } from "../google/api/annotations_pb.js";
import { file_google_api_field_behavior } from "../google/api/field_behavior_pb.js";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file soulfire/sdk.proto.
 */
export const file_soulfire_sdk: GenFile = /*@__PURE__*/
  fileDesc("ChJzb3VsZmlyZS9zZGsucHJvdG8SC3NvdWxmaXJlLnYxIksKDVNka0FwaVZlcnNpb24SEgoFbWFqb3IYASABKA1CA+BBAhISCgVtaW5vchgCIAEoDUID4EECEhIKBXBhdGNoGAMgASgNQgPgQQIiVgoOUmVxdWlyZWRQbHVnaW4SFgoJcGx1Z2luX2lkGAEgASgJQgPgQQISGgoNdmVyc2lvbl9yYW5nZRgCIAEoCUgAiAEBQhAKDl92ZXJzaW9uX3JhbmdlIpgCChNTZGtIYW5kc2hha2VSZXF1ZXN0EhUKCHNka19uYW1lGAEgASgJQgPgQQISGAoLc2RrX3ZlcnNpb24YAiABKAlCA+BBAhI8ChNtaW5pbXVtX2FwaV92ZXJzaW9uGAMgASgLMhouc291bGZpcmUudjEuU2RrQXBpVmVyc2lvbkID4EECEjwKE21heGltdW1fYXBpX3ZlcnNpb24YBCABKAsyGi5zb3VsZmlyZS52MS5TZGtBcGlWZXJzaW9uQgPgQQISHQoVcmVxdWlyZWRfY2FwYWJpbGl0aWVzGAUgAygJEjUKEHJlcXVpcmVkX3BsdWdpbnMYBiADKAsyGy5zb3VsZmlyZS52MS5SZXF1aXJlZFBsdWdpbiI3Cg1TZGtDYXBhYmlsaXR5Eg8KAmlkGAEgASgJQgPgQQISFQoIcmV2aXNpb24YAiABKA1CA+BBAiIvCghTZGtMaW1pdBIPCgJpZBgBIAEoCUID4EECEhIKBXZhbHVlGAIgASgEQgPgQQIisQEKC1Nka0lkZW50aXR5EhkKAmlkGAEgASgJQg3gQQLS8xgGCgR1dWlkEhUKCHVzZXJuYW1lGAIgASgJQgPgQQISHQoFZW1haWwYAyABKAlCDuBBAtLzGAcKBWVtYWlsEigKBHJvbGUYBCABKA4yFS5zb3VsZmlyZS52MS5Vc2VyUm9sZUID4EECEicKGmdyYW50ZWRfZ2xvYmFsX3Blcm1pc3Npb25zGAUgAygJQgPgQQIiiQQKFFNka0hhbmRzaGFrZVJlc3BvbnNlEhYKCXNlcnZlcl9pZBgBIAEoCUID4EECEh0KEHNvdWxmaXJlX3ZlcnNpb24YAiABKAlCA+BBAhIYCgtjb21taXRfaGFzaBgDIAEoCUID4EECEhgKC2JyYW5jaF9uYW1lGAQgASgJQgPgQQISNAoLYXBpX3ZlcnNpb24YBSABKAsyGi5zb3VsZmlyZS52MS5TZGtBcGlWZXJzaW9uQgPgQQISJQoYbmF0aXZlX21pbmVjcmFmdF92ZXJzaW9uGAYgASgJQgPgQQISKQocc3VwcG9ydGVkX21pbmVjcmFmdF92ZXJzaW9ucxgHIAMoCUID4EECEjIKCnRyYW5zcG9ydHMYCCADKA4yGS5zb3VsZmlyZS52MS5TZGtUcmFuc3BvcnRCA+BBAhI1CgxjYXBhYmlsaXRpZXMYCSADKAsyGi5zb3VsZmlyZS52MS5TZGtDYXBhYmlsaXR5QgPgQQISNgoHcGx1Z2lucxgKIAMoCzIgLnNvdWxmaXJlLnYxLlBsdWdpbkFwaURlc2NyaXB0b3JCA+BBAhIqCgZsaW1pdHMYCyADKAsyFS5zb3VsZmlyZS52MS5TZGtMaW1pdEID4EECEi8KCGlkZW50aXR5GAwgASgLMhguc291bGZpcmUudjEuU2RrSWRlbnRpdHlCA+BBAiqrAQoMU2RrVHJhbnNwb3J0Eh0KGVNES19UUkFOU1BPUlRfVU5TUEVDSUZJRUQQABIWChJTREtfVFJBTlNQT1JUX0dSUEMQARIaChZTREtfVFJBTlNQT1JUX0dSUENfV0VCEAISHwobU0RLX1RSQU5TUE9SVF9VTkZSQU1FRF9KU09OEAMSJwojU0RLX1RSQU5TUE9SVF9IVFRQX0pTT05fVFJBTlNDT0RJTkcQBDK6AQoKU2RrU2VydmljZRKrAQoJSGFuZHNoYWtlEiAuc291bGZpcmUudjEuU2RrSGFuZHNoYWtlUmVxdWVzdBohLnNvdWxmaXJlLnYxLlNka0hhbmRzaGFrZVJlc3BvbnNlIlnK8xg5ChhOZWdvdGlhdGUgU0RLIGNvbm5lY3Rpb24aEFJFQURfQ0xJRU5UX0RBVEEiC2NsaWVudC5zZWxmgtPkkwIWOgEqIhEvdjEvc2RrOmhhbmRzaGFrZUIhCh1jb20uc291bGZpcmVtYy5ncnBjLmdlbmVyYXRlZFABYgZwcm90bzM", [file_soulfire_api_docs, file_soulfire_common, file_soulfire_plugin_api, file_google_api_annotations, file_google_api_field_behavior]);

/**
 * A version of SoulFire's stable SDK protocol contract.
 *
 * @generated from message soulfire.v1.SdkApiVersion
 */
export type SdkApiVersion = Message<"soulfire.v1.SdkApiVersion"> & {
  /**
   * @generated from field: uint32 major = 1;
   */
  major: number;

  /**
   * @generated from field: uint32 minor = 2;
   */
  minor: number;

  /**
   * @generated from field: uint32 patch = 3;
   */
  patch: number;
};

/**
 * Describes the message soulfire.v1.SdkApiVersion.
 * Use `create(SdkApiVersionSchema)` to create a new message.
 */
export const SdkApiVersionSchema: GenMessage<SdkApiVersion> = /*@__PURE__*/
  messageDesc(file_soulfire_sdk, 0);

/**
 * A plugin and version range required by an SDK application.
 *
 * @generated from message soulfire.v1.RequiredPlugin
 */
export type RequiredPlugin = Message<"soulfire.v1.RequiredPlugin"> & {
  /**
   * @generated from field: string plugin_id = 1;
   */
  pluginId: string;

  /**
   * Semantic-version range understood by the SDK. The server returns the
   * installed version so the SDK can apply its language-native range parser.
   *
   * @generated from field: optional string version_range = 2;
   */
  versionRange?: string | undefined;
};

/**
 * Describes the message soulfire.v1.RequiredPlugin.
 * Use `create(RequiredPluginSchema)` to create a new message.
 */
export const RequiredPluginSchema: GenMessage<RequiredPlugin> = /*@__PURE__*/
  messageDesc(file_soulfire_sdk, 1);

/**
 * Information supplied by an SDK while negotiating a connection.
 *
 * @generated from message soulfire.v1.SdkHandshakeRequest
 */
export type SdkHandshakeRequest = Message<"soulfire.v1.SdkHandshakeRequest"> & {
  /**
   * @generated from field: string sdk_name = 1;
   */
  sdkName: string;

  /**
   * @generated from field: string sdk_version = 2;
   */
  sdkVersion: string;

  /**
   * @generated from field: soulfire.v1.SdkApiVersion minimum_api_version = 3;
   */
  minimumApiVersion?: SdkApiVersion | undefined;

  /**
   * @generated from field: soulfire.v1.SdkApiVersion maximum_api_version = 4;
   */
  maximumApiVersion?: SdkApiVersion | undefined;

  /**
   * @generated from field: repeated string required_capabilities = 5;
   */
  requiredCapabilities: string[];

  /**
   * @generated from field: repeated soulfire.v1.RequiredPlugin required_plugins = 6;
   */
  requiredPlugins: RequiredPlugin[];
};

/**
 * Describes the message soulfire.v1.SdkHandshakeRequest.
 * Use `create(SdkHandshakeRequestSchema)` to create a new message.
 */
export const SdkHandshakeRequestSchema: GenMessage<SdkHandshakeRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_sdk, 2);

/**
 * A named feature offered by the server.
 *
 * @generated from message soulfire.v1.SdkCapability
 */
export type SdkCapability = Message<"soulfire.v1.SdkCapability"> & {
  /**
   * Stable dotted identifier, for example bot.events.v1.
   *
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * Capability-specific revision. Clients should primarily branch on id.
   *
   * @generated from field: uint32 revision = 2;
   */
  revision: number;
};

/**
 * Describes the message soulfire.v1.SdkCapability.
 * Use `create(SdkCapabilitySchema)` to create a new message.
 */
export const SdkCapabilitySchema: GenMessage<SdkCapability> = /*@__PURE__*/
  messageDesc(file_soulfire_sdk, 3);

/**
 * A named server limit that SDKs can use for validation and batching.
 *
 * @generated from message soulfire.v1.SdkLimit
 */
export type SdkLimit = Message<"soulfire.v1.SdkLimit"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: uint64 value = 2;
   */
  value: bigint;
};

/**
 * Describes the message soulfire.v1.SdkLimit.
 * Use `create(SdkLimitSchema)` to create a new message.
 */
export const SdkLimitSchema: GenMessage<SdkLimit> = /*@__PURE__*/
  messageDesc(file_soulfire_sdk, 4);

/**
 * The authenticated identity attached to the negotiated connection.
 *
 * @generated from message soulfire.v1.SdkIdentity
 */
export type SdkIdentity = Message<"soulfire.v1.SdkIdentity"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string username = 2;
   */
  username: string;

  /**
   * @generated from field: string email = 3;
   */
  email: string;

  /**
   * @generated from field: soulfire.v1.UserRole role = 4;
   */
  role: UserRole;

  /**
   * @generated from field: repeated string granted_global_permissions = 5;
   */
  grantedGlobalPermissions: string[];
};

/**
 * Describes the message soulfire.v1.SdkIdentity.
 * Use `create(SdkIdentitySchema)` to create a new message.
 */
export const SdkIdentitySchema: GenMessage<SdkIdentity> = /*@__PURE__*/
  messageDesc(file_soulfire_sdk, 5);

/**
 * Server metadata and negotiated features returned before an SDK is ready.
 *
 * @generated from message soulfire.v1.SdkHandshakeResponse
 */
export type SdkHandshakeResponse = Message<"soulfire.v1.SdkHandshakeResponse"> & {
  /**
   * @generated from field: string server_id = 1;
   */
  serverId: string;

  /**
   * @generated from field: string soulfire_version = 2;
   */
  soulfireVersion: string;

  /**
   * @generated from field: string commit_hash = 3;
   */
  commitHash: string;

  /**
   * @generated from field: string branch_name = 4;
   */
  branchName: string;

  /**
   * @generated from field: soulfire.v1.SdkApiVersion api_version = 5;
   */
  apiVersion?: SdkApiVersion | undefined;

  /**
   * @generated from field: string native_minecraft_version = 6;
   */
  nativeMinecraftVersion: string;

  /**
   * @generated from field: repeated string supported_minecraft_versions = 7;
   */
  supportedMinecraftVersions: string[];

  /**
   * @generated from field: repeated soulfire.v1.SdkTransport transports = 8;
   */
  transports: SdkTransport[];

  /**
   * @generated from field: repeated soulfire.v1.SdkCapability capabilities = 9;
   */
  capabilities: SdkCapability[];

  /**
   * @generated from field: repeated soulfire.v1.PluginApiDescriptor plugins = 10;
   */
  plugins: PluginApiDescriptor[];

  /**
   * @generated from field: repeated soulfire.v1.SdkLimit limits = 11;
   */
  limits: SdkLimit[];

  /**
   * @generated from field: soulfire.v1.SdkIdentity identity = 12;
   */
  identity?: SdkIdentity | undefined;
};

/**
 * Describes the message soulfire.v1.SdkHandshakeResponse.
 * Use `create(SdkHandshakeResponseSchema)` to create a new message.
 */
export const SdkHandshakeResponseSchema: GenMessage<SdkHandshakeResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_sdk, 6);

/**
 * A transport accepted by the running SoulFire API server.
 *
 * @generated from enum soulfire.v1.SdkTransport
 */
export enum SdkTransport {
  /**
   * @generated from enum value: SDK_TRANSPORT_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: SDK_TRANSPORT_GRPC = 1;
   */
  GRPC = 1,

  /**
   * @generated from enum value: SDK_TRANSPORT_GRPC_WEB = 2;
   */
  GRPC_WEB = 2,

  /**
   * @generated from enum value: SDK_TRANSPORT_UNFRAMED_JSON = 3;
   */
  UNFRAMED_JSON = 3,

  /**
   * @generated from enum value: SDK_TRANSPORT_HTTP_JSON_TRANSCODING = 4;
   */
  HTTP_JSON_TRANSCODING = 4,
}

/**
 * Describes the enum soulfire.v1.SdkTransport.
 */
export const SdkTransportSchema: GenEnum<SdkTransport> = /*@__PURE__*/
  enumDesc(file_soulfire_sdk, 0);

/**
 * Negotiates the stable protocol contract before an SDK exposes a ready client.
 *
 * @generated from service soulfire.v1.SdkService
 */
export const SdkService: GenService<{
  /**
   * @generated from rpc soulfire.v1.SdkService.Handshake
   */
  handshake: {
    methodKind: "unary";
    input: typeof SdkHandshakeRequestSchema;
    output: typeof SdkHandshakeResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_soulfire_sdk, 0);
