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

import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { GlobalPermission, UserRole } from "./common_pb.js";
import { file_soulfire_common } from "./common_pb.js";
import { file_soulfire_api_docs } from "./api_docs_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/client.proto.
 */
export const file_soulfire_client: GenFile = /*@__PURE__*/
  fileDesc("ChVzb3VsZmlyZS9jbGllbnQucHJvdG8SC3NvdWxmaXJlLnYxIhMKEUNsaWVudERhdGFSZXF1ZXN0ImwKFUdsb2JhbFBlcm1pc3Npb25TdGF0ZRI9ChFnbG9iYWxfcGVybWlzc2lvbhgBIAEoDjIdLnNvdWxmaXJlLnYxLkdsb2JhbFBlcm1pc3Npb25CA+BBAhIUCgdncmFudGVkGAIgASgIQgPgQQIiogIKClNlcnZlckluZm8SFAoHdmVyc2lvbhgBIAEoCUID4EECEhgKC2NvbW1pdF9oYXNoGAIgASgJQgPgQQISGAoLYnJhbmNoX25hbWUYAyABKAlCA+BBAhIoChJwdWJsaWNfYXBpX2FkZHJlc3MYBCABKAlCDOBBAtLzGAUKA3VyaRIrChVwdWJsaWNfd2ViZGF2X2FkZHJlc3MYBSABKAlCDOBBAtLzGAUKA3VyaRIpChNwdWJsaWNfZG9jc19hZGRyZXNzGAYgASgJQgzgQQLS8xgFCgN1cmkSKAoScHVibGljX21jcF9hZGRyZXNzGAggASgJQgzgQQLS8xgFCgN1cmkSHgoRbWluZWNyYWZ0X3ZlcnNpb24YByABKAlCA+BBAiKHAgoSQ2xpZW50RGF0YVJlc3BvbnNlEhkKAmlkGAYgASgJQg3gQQLS8xgGCgR1dWlkEhUKCHVzZXJuYW1lGAEgASgJQgPgQQISKAoEcm9sZRgHIAEoDjIVLnNvdWxmaXJlLnYxLlVzZXJSb2xlQgPgQQISHQoFZW1haWwYCCABKAlCDuBBAtLzGAcKBWVtYWlsEkMKEnNlcnZlcl9wZXJtaXNzaW9ucxgCIAMoCzIiLnNvdWxmaXJlLnYxLkdsb2JhbFBlcm1pc3Npb25TdGF0ZUID4EECEjEKC3NlcnZlcl9pbmZvGAsgASgLMhcuc291bGZpcmUudjEuU2VydmVySW5mb0ID4EECIhwKGkdlbmVyYXRlV2ViREFWVG9rZW5SZXF1ZXN0IjEKG0dlbmVyYXRlV2ViREFWVG9rZW5SZXNwb25zZRISCgV0b2tlbhgBIAEoCUID4EECIhkKF0dlbmVyYXRlQVBJVG9rZW5SZXF1ZXN0Ii4KGEdlbmVyYXRlQVBJVG9rZW5SZXNwb25zZRISCgV0b2tlbhgBIAEoCUID4EECIjIKGVVwZGF0ZVNlbGZVc2VybmFtZVJlcXVlc3QSFQoIdXNlcm5hbWUYASABKAlCA+BBAiIcChpVcGRhdGVTZWxmVXNlcm5hbWVSZXNwb25zZSI3ChZVcGRhdGVTZWxmRW1haWxSZXF1ZXN0Eh0KBWVtYWlsGAEgASgJQg7gQQLS8xgHCgVlbWFpbCIZChdVcGRhdGVTZWxmRW1haWxSZXNwb25zZSIfCh1JbnZhbGlkYXRlU2VsZlNlc3Npb25zUmVxdWVzdCIgCh5JbnZhbGlkYXRlU2VsZlNlc3Npb25zUmVzcG9uc2UyiwsKDUNsaWVudFNlcnZpY2USmAEKDUdldENsaWVudERhdGESHi5zb3VsZmlyZS52MS5DbGllbnREYXRhUmVxdWVzdBofLnNvdWxmaXJlLnYxLkNsaWVudERhdGFSZXNwb25zZSJGyvMYMAoPR2V0IGNsaWVudCBkYXRhGhBSRUFEX0NMSUVOVF9EQVRBIgtjbGllbnQuc2VsZoLT5JMCDBIKL3YxL2NsaWVudBKEAgoTR2VuZXJhdGVXZWJEQVZUb2tlbhInLnNvdWxmaXJlLnYxLkdlbmVyYXRlV2ViREFWVG9rZW5SZXF1ZXN0Giguc291bGZpcmUudjEuR2VuZXJhdGVXZWJEQVZUb2tlblJlc3BvbnNlIpkByvMYbAoVR2VuZXJhdGUgV2ViREFWIHRva2VuGhpHRU5FUkFURV9TRUxGX1dFQkRBVl9UT0tFTiILY2xpZW50LnNlbGY6Kklzc3VlcyBhIG5ldyBKV1Qgd2l0aCB0aGUgd2ViZGF2IGF1ZGllbmNlLoLT5JMCIyIhL3YxL2NsaWVudC90b2tlbnMvd2ViZGF2OmdlbmVyYXRlEu8BChBHZW5lcmF0ZUFQSVRva2VuEiQuc291bGZpcmUudjEuR2VuZXJhdGVBUElUb2tlblJlcXVlc3QaJS5zb3VsZmlyZS52MS5HZW5lcmF0ZUFQSVRva2VuUmVzcG9uc2UijQHK8xhjChJHZW5lcmF0ZSBBUEkgdG9rZW4aF0dFTkVSQVRFX1NFTEZfQVBJX1RPS0VOIgtjbGllbnQuc2VsZjonSXNzdWVzIGEgbmV3IEpXVCB3aXRoIHRoZSBhcGkgYXVkaWVuY2UugtPkkwIgIh4vdjEvY2xpZW50L3Rva2Vucy9hcGk6Z2VuZXJhdGUS6wEKElVwZGF0ZVNlbGZVc2VybmFtZRImLnNvdWxmaXJlLnYxLlVwZGF0ZVNlbGZVc2VybmFtZVJlcXVlc3QaJy5zb3VsZmlyZS52MS5VcGRhdGVTZWxmVXNlcm5hbWVSZXNwb25zZSKDAcrzGGEKFFVwZGF0ZSBzZWxmIHVzZXJuYW1lGhRVUERBVEVfU0VMRl9VU0VSTkFNRSILY2xpZW50LnNlbGY6JlBlcnNpc3RzIHRoZSBuZXcgdXNlcm5hbWUgaW1tZWRpYXRlbHkugtPkkwIYOgEqMhMvdjEvY2xpZW50L3VzZXJuYW1lEt0BCg9VcGRhdGVTZWxmRW1haWwSIy5zb3VsZmlyZS52MS5VcGRhdGVTZWxmRW1haWxSZXF1ZXN0GiQuc291bGZpcmUudjEuVXBkYXRlU2VsZkVtYWlsUmVzcG9uc2Uif8rzGGAKEVVwZGF0ZSBzZWxmIGVtYWlsGhFVUERBVEVfU0VMRl9FTUFJTCILY2xpZW50LnNlbGY6K1BlcnNpc3RzIHRoZSBuZXcgZW1haWwgYWRkcmVzcyBpbW1lZGlhdGVseS6C0+STAhU6ASoyEC92MS9jbGllbnQvZW1haWwSlwIKFkludmFsaWRhdGVTZWxmU2Vzc2lvbnMSKi5zb3VsZmlyZS52MS5JbnZhbGlkYXRlU2VsZlNlc3Npb25zUmVxdWVzdBorLnNvdWxmaXJlLnYxLkludmFsaWRhdGVTZWxmU2Vzc2lvbnNSZXNwb25zZSKjAcrzGHkKGEludmFsaWRhdGUgc2VsZiBzZXNzaW9ucxoYSU5WQUxJREFURV9TRUxGX1NFU1NJT05TIgtjbGllbnQuc2VsZjo2UmV2b2tlcyBwcmV2aW91c2x5IGlzc3VlZCB0b2tlbnMgZm9yIHRoZSBjdXJyZW50IHVzZXIugtPkkwIgIh4vdjEvY2xpZW50L3Nlc3Npb25zOmludmFsaWRhdGVCIQodY29tLnNvdWxmaXJlbWMuZ3JwYy5nZW5lcmF0ZWRQAWIGcHJvdG8z", [file_soulfire_common, file_soulfire_api_docs, file_google_api_annotations, file_google_api_field_behavior]);

/**
 * Request message for retrieving client data.
 * This is an empty message as the server identifies the client from the authentication context.
 *
 * @generated from message soulfire.v1.ClientDataRequest
 */
export type ClientDataRequest = Message<"soulfire.v1.ClientDataRequest"> & {
};

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

/**
 * Represents the grant status of a single global permission for the current user.
 * Used to communicate which server-wide permissions the authenticated user has been granted.
 *
 * @generated from message soulfire.v1.GlobalPermissionState
 */
export type GlobalPermissionState = Message<"soulfire.v1.GlobalPermissionState"> & {
  /**
   * The global permission being described.
   *
   * @generated from field: soulfire.v1.GlobalPermission global_permission = 1;
   */
  globalPermission: GlobalPermission;

  /**
   * Whether this permission has been granted to the current user.
   * True if the user has this permission, false otherwise.
   *
   * @generated from field: bool granted = 2;
   */
  granted: boolean;
};

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

/**
 * Contains metadata about the SoulFire server instance.
 * This information is useful for client compatibility checks and connecting to related services.
 *
 * @generated from message soulfire.v1.ServerInfo
 */
export type ServerInfo = Message<"soulfire.v1.ServerInfo"> & {
  /**
   * The semantic version of the SoulFire server (e.g., "1.0.0").
   *
   * @generated from field: string version = 1;
   */
  version: string;

  /**
   * The git commit hash of the server build, useful for debugging and version tracking.
   *
   * @generated from field: string commit_hash = 2;
   */
  commitHash: string;

  /**
   * The git branch name from which the server was built (e.g., "main", "develop").
   *
   * @generated from field: string branch_name = 3;
   */
  branchName: string;

  /**
   * The public URL for the gRPC/HTTP API endpoint.
   * This is the base address clients should use to connect to the server.
   *
   * @generated from field: string public_api_address = 4;
   */
  publicApiAddress: string;

  /**
   * The public URL for the WebDAV file access endpoint.
   * Derived from public_api_address with "/webdav" appended.
   *
   * @generated from field: string public_webdav_address = 5;
   */
  publicWebdavAddress: string;

  /**
   * The public URL for the API documentation endpoint.
   * Derived from public_api_address with "/docs" appended.
   *
   * @generated from field: string public_docs_address = 6;
   */
  publicDocsAddress: string;

  /**
   * The public URL for the MCP (Model Context Protocol) endpoint.
   * Derived from public_api_address with "/mcp" appended.
   * Clients can use this to connect AI assistants to the SoulFire server.
   *
   * @generated from field: string public_mcp_address = 8;
   */
  publicMcpAddress: string;

  /**
   * The native Minecraft protocol version supported by this server (e.g., "1.21.4").
   *
   * @generated from field: string minecraft_version = 7;
   */
  minecraftVersion: string;
};

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

/**
 * Response containing comprehensive information about the authenticated client and server.
 * This is typically called after authentication to populate the client UI with user details.
 *
 * @generated from message soulfire.v1.ClientDataResponse
 */
export type ClientDataResponse = Message<"soulfire.v1.ClientDataResponse"> & {
  /**
   * The unique identifier (UUID) of the authenticated user.
   *
   * @generated from field: string id = 6;
   */
  id: string;

  /**
   * The display username of the authenticated user.
   *
   * @generated from field: string username = 1;
   */
  username: string;

  /**
   * The role assigned to the user (ADMIN or USER), which determines base permission levels.
   *
   * @generated from field: soulfire.v1.UserRole role = 7;
   */
  role: UserRole;

  /**
   * The email address associated with the user account.
   *
   * @generated from field: string email = 8;
   */
  email: string;

  /**
   * A complete list of all global permissions and whether they are granted to this user.
   * This allows the client to determine which features/actions are available.
   *
   * @generated from field: repeated soulfire.v1.GlobalPermissionState server_permissions = 2;
   */
  serverPermissions: GlobalPermissionState[];

  /**
   * Metadata about the server instance the client is connected to.
   *
   * @generated from field: soulfire.v1.ServerInfo server_info = 11;
   */
  serverInfo?: ServerInfo | undefined;
};

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

/**
 * Request message for generating a WebDAV authentication token.
 * This is an empty message as the server identifies the user from the authentication context.
 *
 * @generated from message soulfire.v1.GenerateWebDAVTokenRequest
 */
export type GenerateWebDAVTokenRequest = Message<"soulfire.v1.GenerateWebDAVTokenRequest"> & {
};

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

/**
 * Response containing a newly generated WebDAV authentication token.
 *
 * @generated from message soulfire.v1.GenerateWebDAVTokenResponse
 */
export type GenerateWebDAVTokenResponse = Message<"soulfire.v1.GenerateWebDAVTokenResponse"> & {
  /**
   * A JWT token with "webdav" audience that can be used to authenticate WebDAV requests.
   * This token should be included in the Authorization header when accessing the WebDAV endpoint.
   *
   * @generated from field: string token = 1;
   */
  token: string;
};

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

/**
 * Request message for generating an API authentication token.
 * This is an empty message as the server identifies the user from the authentication context.
 *
 * @generated from message soulfire.v1.GenerateAPITokenRequest
 */
export type GenerateAPITokenRequest = Message<"soulfire.v1.GenerateAPITokenRequest"> & {
};

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

/**
 * Response containing a newly generated API authentication token.
 *
 * @generated from message soulfire.v1.GenerateAPITokenResponse
 */
export type GenerateAPITokenResponse = Message<"soulfire.v1.GenerateAPITokenResponse"> & {
  /**
   * A JWT token with "api" audience that can be used to authenticate gRPC/HTTP API requests.
   * This token should be included in the Authorization header for subsequent API calls.
   *
   * @generated from field: string token = 1;
   */
  token: string;
};

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

/**
 * Request message for updating the authenticated user's username.
 *
 * @generated from message soulfire.v1.UpdateSelfUsernameRequest
 */
export type UpdateSelfUsernameRequest = Message<"soulfire.v1.UpdateSelfUsernameRequest"> & {
  /**
   * The new username to set for the current user.
   * This will replace the existing username in the database.
   *
   * @generated from field: string username = 1;
   */
  username: string;
};

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

/**
 * Response message for username update operation.
 * An empty response indicates the operation completed successfully.
 *
 * @generated from message soulfire.v1.UpdateSelfUsernameResponse
 */
export type UpdateSelfUsernameResponse = Message<"soulfire.v1.UpdateSelfUsernameResponse"> & {
};

/**
 * Describes the message soulfire.v1.UpdateSelfUsernameResponse.
 * Use `create(UpdateSelfUsernameResponseSchema)` to create a new message.
 */
export const UpdateSelfUsernameResponseSchema: GenMessage<UpdateSelfUsernameResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_client, 9);

/**
 * Request message for updating the authenticated user's email address.
 *
 * @generated from message soulfire.v1.UpdateSelfEmailRequest
 */
export type UpdateSelfEmailRequest = Message<"soulfire.v1.UpdateSelfEmailRequest"> & {
  /**
   * The new email address to set for the current user.
   * This will replace the existing email in the database.
   *
   * @generated from field: string email = 1;
   */
  email: string;
};

/**
 * Describes the message soulfire.v1.UpdateSelfEmailRequest.
 * Use `create(UpdateSelfEmailRequestSchema)` to create a new message.
 */
export const UpdateSelfEmailRequestSchema: GenMessage<UpdateSelfEmailRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_client, 10);

/**
 * Response message for email update operation.
 * An empty response indicates the operation completed successfully.
 *
 * @generated from message soulfire.v1.UpdateSelfEmailResponse
 */
export type UpdateSelfEmailResponse = Message<"soulfire.v1.UpdateSelfEmailResponse"> & {
};

/**
 * Describes the message soulfire.v1.UpdateSelfEmailResponse.
 * Use `create(UpdateSelfEmailResponseSchema)` to create a new message.
 */
export const UpdateSelfEmailResponseSchema: GenMessage<UpdateSelfEmailResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_client, 11);

/**
 * Request message for invalidating all sessions of the authenticated user.
 * This is an empty message as the server identifies the user from the authentication context.
 *
 * @generated from message soulfire.v1.InvalidateSelfSessionsRequest
 */
export type InvalidateSelfSessionsRequest = Message<"soulfire.v1.InvalidateSelfSessionsRequest"> & {
};

/**
 * Describes the message soulfire.v1.InvalidateSelfSessionsRequest.
 * Use `create(InvalidateSelfSessionsRequestSchema)` to create a new message.
 */
export const InvalidateSelfSessionsRequestSchema: GenMessage<InvalidateSelfSessionsRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_client, 12);

/**
 * Response message for session invalidation operation.
 * An empty response indicates the operation completed successfully.
 *
 * @generated from message soulfire.v1.InvalidateSelfSessionsResponse
 */
export type InvalidateSelfSessionsResponse = Message<"soulfire.v1.InvalidateSelfSessionsResponse"> & {
};

/**
 * Describes the message soulfire.v1.InvalidateSelfSessionsResponse.
 * Use `create(InvalidateSelfSessionsResponseSchema)` to create a new message.
 */
export const InvalidateSelfSessionsResponseSchema: GenMessage<InvalidateSelfSessionsResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_client, 13);

/**
 * Service for managing client/user-specific operations.
 * All methods in this service operate on the currently authenticated user,
 * identified via the JWT token in the Authorization header.
 * Each method requires a specific GlobalPermission to be granted to the user.
 *
 * @generated from service soulfire.v1.ClientService
 */
export const ClientService: GenService<{
  /**
   * Retrieves comprehensive data about the authenticated client and the server.
   * Returns user profile information, granted permissions, and server metadata.
   * Required permission: READ_CLIENT_DATA
   * Error cases:
   *   - PERMISSION_DENIED: User lacks READ_CLIENT_DATA permission
   *   - INTERNAL: Server error while fetching client data
   *
   * @generated from rpc soulfire.v1.ClientService.GetClientData
   */
  getClientData: {
    methodKind: "unary";
    input: typeof ClientDataRequestSchema;
    output: typeof ClientDataResponseSchema;
  },
  /**
   * Generates a new JWT token specifically for WebDAV authentication.
   * The generated token has the "webdav" audience and can only be used for WebDAV access.
   * Required permission: GENERATE_SELF_WEBDAV_TOKEN
   * Error cases:
   *   - PERMISSION_DENIED: User lacks GENERATE_SELF_WEBDAV_TOKEN permission
   *   - INTERNAL: Server error while generating token (e.g., user not found)
   *
   * @generated from rpc soulfire.v1.ClientService.GenerateWebDAVToken
   */
  generateWebDAVToken: {
    methodKind: "unary";
    input: typeof GenerateWebDAVTokenRequestSchema;
    output: typeof GenerateWebDAVTokenResponseSchema;
  },
  /**
   * Generates a new JWT token for API authentication.
   * The generated token has the "api" audience and can be used for gRPC/HTTP API calls.
   * Required permission: GENERATE_SELF_API_TOKEN
   * Error cases:
   *   - PERMISSION_DENIED: User lacks GENERATE_SELF_API_TOKEN permission
   *   - INTERNAL: Server error while generating token (e.g., user not found)
   *
   * @generated from rpc soulfire.v1.ClientService.GenerateAPIToken
   */
  generateAPIToken: {
    methodKind: "unary";
    input: typeof GenerateAPITokenRequestSchema;
    output: typeof GenerateAPITokenResponseSchema;
  },
  /**
   * Updates the username of the currently authenticated user.
   * The change is persisted to the database immediately.
   * Required permission: UPDATE_SELF_USERNAME
   * Error cases:
   *   - PERMISSION_DENIED: User lacks UPDATE_SELF_USERNAME permission
   *   - INTERNAL: Server error while updating (e.g., user not found in database)
   *
   * @generated from rpc soulfire.v1.ClientService.UpdateSelfUsername
   */
  updateSelfUsername: {
    methodKind: "unary";
    input: typeof UpdateSelfUsernameRequestSchema;
    output: typeof UpdateSelfUsernameResponseSchema;
  },
  /**
   * Updates the email address of the currently authenticated user.
   * The change is persisted to the database immediately.
   * Required permission: UPDATE_SELF_EMAIL
   * Error cases:
   *   - PERMISSION_DENIED: User lacks UPDATE_SELF_EMAIL permission
   *   - INTERNAL: Server error while updating (e.g., user not found in database)
   *
   * @generated from rpc soulfire.v1.ClientService.UpdateSelfEmail
   */
  updateSelfEmail: {
    methodKind: "unary";
    input: typeof UpdateSelfEmailRequestSchema;
    output: typeof UpdateSelfEmailResponseSchema;
  },
  /**
   * Invalidates all existing sessions for the currently authenticated user.
   * This is done by setting the user's minIssuedAt timestamp to the current time,
   * which causes all previously issued JWT tokens to become invalid.
   * After calling this method, the user will need to re-authenticate on all devices.
   * Required permission: INVALIDATE_SELF_SESSIONS
   * Error cases:
   *   - PERMISSION_DENIED: User lacks INVALIDATE_SELF_SESSIONS permission
   *   - INTERNAL: Server error while invalidating sessions (e.g., user not found)
   *
   * @generated from rpc soulfire.v1.ClientService.InvalidateSelfSessions
   */
  invalidateSelfSessions: {
    methodKind: "unary";
    input: typeof InvalidateSelfSessionsRequestSchema;
    output: typeof InvalidateSelfSessionsResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_soulfire_client, 0);
