// @generated by protoc-gen-es v2.13.0 with parameter "target=ts,import_extension=js"
// @generated from file soulfire/protocol.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_google_api_annotations } from "../google/api/annotations_pb.js";
import { file_google_api_field_behavior } from "../google/api/field_behavior_pb.js";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import { file_soulfire_api_docs } from "./api_docs_pb.js";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file soulfire/protocol.proto.
 */
export const file_soulfire_protocol: GenFile = /*@__PURE__*/
  fileDesc("Chdzb3VsZmlyZS9wcm90b2NvbC5wcm90bxILc291bGZpcmUudjEiQwoSQm90UHJvdG9jb2xSZXF1ZXN0EhgKC2luc3RhbmNlX2lkGAEgASgJQgPgQQISEwoGYm90X2lkGAIgASgJQgPgQQIitQIKD0JvdFByb3RvY29sSW5mbxIiChptaW5lY3JhZnRfcHJvdG9jb2xfdmVyc2lvbhgBIAEoBRIeChZtaW5lY3JhZnRfdmVyc2lvbl9uYW1lGAIgASgJEhYKDnByb3RvY29sX3N0YXRlGAMgASgJEiQKHHBhY2tldF9vYnNlcnZhdGlvbl9zdXBwb3J0ZWQYBCABKAgSIgoacmF3X3BhY2tldF9zZW5kaW5nX2VuYWJsZWQYBSABKAgSHAoUbWF4aW11bV9wYWNrZXRfYnl0ZXMYBiABKA0SIAoYbWF4aW11bV9zZW5kc19wZXJfc2Vjb25kGAcgASgNEh8KF3JlbW90ZV9wcm90b2NvbF92ZXJzaW9uGAggASgFEhsKE3JlbW90ZV92ZXJzaW9uX25hbWUYCSABKAkifwoYTGlzdFBhY2tldFNjaGVtYXNSZXF1ZXN0EhgKC2luc3RhbmNlX2lkGAEgASgJQgPgQQISEwoGYm90X2lkGAIgASgJQgPgQQISNAoJZGlyZWN0aW9uGAMgASgOMhwuc291bGZpcmUudjEuUGFja2V0RGlyZWN0aW9uQgPgQQIieQoMUGFja2V0U2NoZW1hEi8KCWRpcmVjdGlvbhgBIAEoDjIcLnNvdWxmaXJlLnYxLlBhY2tldERpcmVjdGlvbhIMCgRuYW1lGAIgASgJEhIKCm5ldHdvcmtfaWQYAyABKA0SFgoOcHJvdG9jb2xfc3RhdGUYBCABKAkiRwoZTGlzdFBhY2tldFNjaGVtYXNSZXNwb25zZRIqCgdwYWNrZXRzGAEgAygLMhkuc291bGZpcmUudjEuUGFja2V0U2NoZW1hIsQBChNXYXRjaFBhY2tldHNSZXF1ZXN0EhgKC2luc3RhbmNlX2lkGAEgASgJQgPgQQISEwoGYm90X2lkGAIgASgJQgPgQQISMAoKZGlyZWN0aW9ucxgDIAMoDjIcLnNvdWxmaXJlLnYxLlBhY2tldERpcmVjdGlvbhINCgVuYW1lcxgEIAMoCRIeChZpbmNsdWRlX2VuY29kZWRfcGFja2V0GAUgASgIEh0KFW1heGltdW1fZW5jb2RlZF9ieXRlcxgGIAEoDSKpAgoOUmF3UGFja2V0RXZlbnQSEAoIc2VxdWVuY2UYASABKAQSLwoLb2JzZXJ2ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KCWRpcmVjdGlvbhgDIAEoDjIcLnNvdWxmaXJlLnYxLlBhY2tldERpcmVjdGlvbhIMCgRuYW1lGAQgASgJEhIKCm5ldHdvcmtfaWQYBSABKA0SFgoOcHJvdG9jb2xfc3RhdGUYBiABKAkSFwoPamF2YV9jbGFzc19uYW1lGAcgASgJEhYKDmVuY29kZWRfcGFja2V0GAggASgMEiAKGGVuY29kZWRfcGFja2V0X3RydW5jYXRlZBgJIAEoCBIWCg5kcm9wcGVkX2JlZm9yZRgKIAEoBCKQAQoUU2VuZFJhd1BhY2tldFJlcXVlc3QSGAoLaW5zdGFuY2VfaWQYASABKAlCA+BBAhITCgZib3RfaWQYAiABKAlCA+BBAhIbCg5lbmNvZGVkX3BhY2tldBgDIAEoDEID4EECEhoKDWV4cGVjdGVkX25hbWUYBCABKAlIAIgBAUIQCg5fZXhwZWN0ZWRfbmFtZSI8ChVTZW5kUmF3UGFja2V0UmVzcG9uc2USDAoEbmFtZRgBIAEoCRIVCg1lbmNvZGVkX2J5dGVzGAIgASgNKncKD1BhY2tldERpcmVjdGlvbhIgChxQQUNLRVRfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASIAocUEFDS0VUX0RJUkVDVElPTl9DTElFTlRCT1VORBABEiAKHFBBQ0tFVF9ESVJFQ1RJT05fU0VSVkVSQk9VTkQQAjKqCAoSQm90UHJvdG9jb2xTZXJ2aWNlEssBCg9HZXRQcm90b2NvbEluZm8SHy5zb3VsZmlyZS52MS5Cb3RQcm90b2NvbFJlcXVlc3QaHC5zb3VsZmlyZS52MS5Cb3RQcm90b2NvbEluZm8iecrzGDsKHEdldCBib3QgcHJvdG9jb2wgaW5mb3JtYXRpb24aDVJFQURfQk9UX0lORk8iDGluc3RhbmNlLmJvdILT5JMCNBIyL3YxL2luc3RhbmNlcy97aW5zdGFuY2VfaWR9L2JvdHMve2JvdF9pZH0vcHJvdG9jb2wS6AEKEUxpc3RQYWNrZXRTY2hlbWFzEiUuc291bGZpcmUudjEuTGlzdFBhY2tldFNjaGVtYXNSZXF1ZXN0GiYuc291bGZpcmUudjEuTGlzdFBhY2tldFNjaGVtYXNSZXNwb25zZSKDAcrzGD0KHkxpc3QgbmVnb3RpYXRlZCBwYWNrZXQgc2NoZW1hcxoNUkVBRF9CT1RfSU5GTyIMaW5zdGFuY2UuYm90gtPkkwI8EjovdjEvaW5zdGFuY2VzL3tpbnN0YW5jZV9pZH0vYm90cy97Ym90X2lkfS9wcm90b2NvbC9wYWNrZXRzEtwBCgxXYXRjaFBhY2tldHMSIC5zb3VsZmlyZS52MS5XYXRjaFBhY2tldHNSZXF1ZXN0Ghsuc291bGZpcmUudjEuUmF3UGFja2V0RXZlbnQiigHK8xiFAQobV2F0Y2ggcmF3IE1pbmVjcmFmdCBwYWNrZXRzGg1SRUFEX0JPVF9JTkZPIgxpbnN0YW5jZS5ib3QySVN0cmVhbXMgZmlsdGVyZWQgdmVyc2lvbi1kZXBlbmRlbnQgcGFja2V0IG9ic2VydmF0aW9ucyB3aXRoIGJhY2twcmVzc3VyZS4wARL7AgoNU2VuZFJhd1BhY2tldBIhLnNvdWxmaXJlLnYxLlNlbmRSYXdQYWNrZXRSZXF1ZXN0GiIuc291bGZpcmUudjEuU2VuZFJhd1BhY2tldFJlc3BvbnNlIqICyvMY0wEKG1NlbmQgYSByYXcgTWluZWNyYWZ0IHBhY2tldBoMUkFXX1BST1RPQ09MIgxpbnN0YW5jZS5ib3QyU1ZhbGlkYXRlcyBhbmQgaW5qZWN0cyBvbmUgdW5mcmFtZWQgcGFja2V0IHRocm91Z2ggdGhlIG5lZ290aWF0ZWQgc2VydmVyYm91bmQgY29kZWMuOkNDYW4gcGVyZm9ybSBhcmJpdHJhcnkgdmVyc2lvbi1kZXBlbmRlbnQgTWluZWNyYWZ0IHByb3RvY29sIGFjdGlvbnMugtPkkwJEOgEqIj8vdjEvaW5zdGFuY2VzL3tpbnN0YW5jZV9pZH0vYm90cy97Ym90X2lkfS9wcm90b2NvbC9wYWNrZXRzOnNlbmRCIQodY29tLnNvdWxmaXJlbWMuZ3JwYy5nZW5lcmF0ZWRQAWIGcHJvdG8z", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_timestamp, file_soulfire_api_docs]);

/**
 * @generated from message soulfire.v1.BotProtocolRequest
 */
export type BotProtocolRequest = Message<"soulfire.v1.BotProtocolRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;
};

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

/**
 * @generated from message soulfire.v1.BotProtocolInfo
 */
export type BotProtocolInfo = Message<"soulfire.v1.BotProtocolInfo"> & {
  /**
   * Packet schemas and encoded packet bytes use this native client protocol.
   *
   * @generated from field: int32 minecraft_protocol_version = 1;
   */
  minecraftProtocolVersion: number;

  /**
   * @generated from field: string minecraft_version_name = 2;
   */
  minecraftVersionName: string;

  /**
   * @generated from field: string protocol_state = 3;
   */
  protocolState: string;

  /**
   * @generated from field: bool packet_observation_supported = 4;
   */
  packetObservationSupported: boolean;

  /**
   * @generated from field: bool raw_packet_sending_enabled = 5;
   */
  rawPacketSendingEnabled: boolean;

  /**
   * @generated from field: uint32 maximum_packet_bytes = 6;
   */
  maximumPacketBytes: number;

  /**
   * @generated from field: uint32 maximum_sends_per_second = 7;
   */
  maximumSendsPerSecond: number;

  /**
   * The remote server protocol negotiated by ViaVersion.
   *
   * @generated from field: int32 remote_protocol_version = 8;
   */
  remoteProtocolVersion: number;

  /**
   * @generated from field: string remote_version_name = 9;
   */
  remoteVersionName: string;
};

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

/**
 * @generated from message soulfire.v1.ListPacketSchemasRequest
 */
export type ListPacketSchemasRequest = Message<"soulfire.v1.ListPacketSchemasRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * @generated from field: soulfire.v1.PacketDirection direction = 3;
   */
  direction: PacketDirection;
};

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

/**
 * @generated from message soulfire.v1.PacketSchema
 */
export type PacketSchema = Message<"soulfire.v1.PacketSchema"> & {
  /**
   * @generated from field: soulfire.v1.PacketDirection direction = 1;
   */
  direction: PacketDirection;

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

  /**
   * @generated from field: uint32 network_id = 3;
   */
  networkId: number;

  /**
   * @generated from field: string protocol_state = 4;
   */
  protocolState: string;
};

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

/**
 * @generated from message soulfire.v1.ListPacketSchemasResponse
 */
export type ListPacketSchemasResponse = Message<"soulfire.v1.ListPacketSchemasResponse"> & {
  /**
   * @generated from field: repeated soulfire.v1.PacketSchema packets = 1;
   */
  packets: PacketSchema[];
};

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

/**
 * @generated from message soulfire.v1.WatchPacketsRequest
 */
export type WatchPacketsRequest = Message<"soulfire.v1.WatchPacketsRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * @generated from field: repeated soulfire.v1.PacketDirection directions = 3;
   */
  directions: PacketDirection[];

  /**
   * @generated from field: repeated string names = 4;
   */
  names: string[];

  /**
   * @generated from field: bool include_encoded_packet = 5;
   */
  includeEncodedPacket: boolean;

  /**
   * Zero selects the server maximum.
   *
   * @generated from field: uint32 maximum_encoded_bytes = 6;
   */
  maximumEncodedBytes: number;
};

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

/**
 * @generated from message soulfire.v1.RawPacketEvent
 */
export type RawPacketEvent = Message<"soulfire.v1.RawPacketEvent"> & {
  /**
   * @generated from field: uint64 sequence = 1;
   */
  sequence: bigint;

  /**
   * @generated from field: google.protobuf.Timestamp observed_at = 2;
   */
  observedAt?: Timestamp | undefined;

  /**
   * @generated from field: soulfire.v1.PacketDirection direction = 3;
   */
  direction: PacketDirection;

  /**
   * @generated from field: string name = 4;
   */
  name: string;

  /**
   * @generated from field: uint32 network_id = 5;
   */
  networkId: number;

  /**
   * @generated from field: string protocol_state = 6;
   */
  protocolState: string;

  /**
   * @generated from field: string java_class_name = 7;
   */
  javaClassName: string;

  /**
   * @generated from field: bytes encoded_packet = 8;
   */
  encodedPacket: Uint8Array;

  /**
   * @generated from field: bool encoded_packet_truncated = 9;
   */
  encodedPacketTruncated: boolean;

  /**
   * @generated from field: uint64 dropped_before = 10;
   */
  droppedBefore: bigint;
};

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

/**
 * @generated from message soulfire.v1.SendRawPacketRequest
 */
export type SendRawPacketRequest = Message<"soulfire.v1.SendRawPacketRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * The complete unframed packet, including its protocol packet ID.
   *
   * @generated from field: bytes encoded_packet = 3;
   */
  encodedPacket: Uint8Array;

  /**
   * Optional guard against sending bytes for the wrong packet schema.
   *
   * @generated from field: optional string expected_name = 4;
   */
  expectedName?: string | undefined;
};

/**
 * Describes the message soulfire.v1.SendRawPacketRequest.
 * Use `create(SendRawPacketRequestSchema)` to create a new message.
 */
export const SendRawPacketRequestSchema: GenMessage<SendRawPacketRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_protocol, 7);

/**
 * @generated from message soulfire.v1.SendRawPacketResponse
 */
export type SendRawPacketResponse = Message<"soulfire.v1.SendRawPacketResponse"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: uint32 encoded_bytes = 2;
   */
  encodedBytes: number;
};

/**
 * Describes the message soulfire.v1.SendRawPacketResponse.
 * Use `create(SendRawPacketResponseSchema)` to create a new message.
 */
export const SendRawPacketResponseSchema: GenMessage<SendRawPacketResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_protocol, 8);

/**
 * @generated from enum soulfire.v1.PacketDirection
 */
export enum PacketDirection {
  /**
   * @generated from enum value: PACKET_DIRECTION_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: PACKET_DIRECTION_CLIENTBOUND = 1;
   */
  CLIENTBOUND = 1,

  /**
   * @generated from enum value: PACKET_DIRECTION_SERVERBOUND = 2;
   */
  SERVERBOUND = 2,
}

/**
 * Describes the enum soulfire.v1.PacketDirection.
 */
export const PacketDirectionSchema: GenEnum<PacketDirection> = /*@__PURE__*/
  enumDesc(file_soulfire_protocol, 0);

/**
 * @generated from service soulfire.v1.BotProtocolService
 */
export const BotProtocolService: GenService<{
  /**
   * @generated from rpc soulfire.v1.BotProtocolService.GetProtocolInfo
   */
  getProtocolInfo: {
    methodKind: "unary";
    input: typeof BotProtocolRequestSchema;
    output: typeof BotProtocolInfoSchema;
  },
  /**
   * @generated from rpc soulfire.v1.BotProtocolService.ListPacketSchemas
   */
  listPacketSchemas: {
    methodKind: "unary";
    input: typeof ListPacketSchemasRequestSchema;
    output: typeof ListPacketSchemasResponseSchema;
  },
  /**
   * @generated from rpc soulfire.v1.BotProtocolService.WatchPackets
   */
  watchPackets: {
    methodKind: "server_streaming";
    input: typeof WatchPacketsRequestSchema;
    output: typeof RawPacketEventSchema;
  },
  /**
   * @generated from rpc soulfire.v1.BotProtocolService.SendRawPacket
   */
  sendRawPacket: {
    methodKind: "unary";
    input: typeof SendRawPacketRequestSchema;
    output: typeof SendRawPacketResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_soulfire_protocol, 0);
