// @generated by protoc-gen-es v1.10.1 with parameter "target=dts+js"
// @generated from file livekit_phone_number.proto (package livekit, syntax proto3)
/* eslint-disable */
// @ts-nocheck

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage, Timestamp } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
import type { TokenPagination } from "./livekit_models_pb.js";

/**
 * Phone number status enumeration
 *
 * @generated from enum livekit.PhoneNumberStatus
 */
export declare enum PhoneNumberStatus {
  /**
   * Default value
   *
   * @generated from enum value: PHONE_NUMBER_STATUS_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Number is active and ready for use
   *
   * @generated from enum value: PHONE_NUMBER_STATUS_ACTIVE = 1;
   */
  ACTIVE = 1,

  /**
   * Number is being provisioned
   *
   * @generated from enum value: PHONE_NUMBER_STATUS_PENDING = 2;
   */
  PENDING = 2,

  /**
   * Number has been released
   *
   * @generated from enum value: PHONE_NUMBER_STATUS_RELEASED = 3;
   */
  RELEASED = 3,

  /**
   * Number is offline (not associated with any dispatch rule)
   *
   * @generated from enum value: PHONE_NUMBER_STATUS_OFFLINE = 4;
   */
  OFFLINE = 4,
}

/**
 * Phone number type enumeration
 *
 * @generated from enum livekit.PhoneNumberType
 */
export declare enum PhoneNumberType {
  /**
   * Default value - unknown or parsing error
   *
   * @generated from enum value: PHONE_NUMBER_TYPE_UNKNOWN = 0;
   */
  UNKNOWN = 0,

  /**
   * Mobile phone number
   *
   * @generated from enum value: PHONE_NUMBER_TYPE_MOBILE = 1;
   */
  MOBILE = 1,

  /**
   * Local/fixed line number
   *
   * @generated from enum value: PHONE_NUMBER_TYPE_LOCAL = 2;
   */
  LOCAL = 2,

  /**
   * Toll-free number
   *
   * @generated from enum value: PHONE_NUMBER_TYPE_TOLL_FREE = 3;
   */
  TOLL_FREE = 3,
}

/**
 * SearchPhoneNumbersRequest - Request to search available phone numbers
 *
 * @generated from message livekit.SearchPhoneNumbersRequest
 */
export declare class SearchPhoneNumbersRequest extends Message<SearchPhoneNumbersRequest> {
  /**
   * Filter by country code (e.g., "US", "CA")
   *
   * @generated from field: string country_code = 1;
   */
  countryCode: string;

  /**
   * Filter by area code (e.g., "415")
   *
   * @generated from field: optional string area_code = 2;
   */
  areaCode?: string;

  /**
   * Maximum number of results (default: 50)
   *
   * @generated from field: optional int32 limit = 3;
   */
  limit?: number;

  /**
   * Token for pagination (empty for first page)
   *
   * @generated from field: optional livekit.TokenPagination page_token = 4;
   */
  pageToken?: TokenPagination;

  constructor(data?: PartialMessage<SearchPhoneNumbersRequest>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SearchPhoneNumbersRequest";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SearchPhoneNumbersRequest;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SearchPhoneNumbersRequest;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SearchPhoneNumbersRequest;

  static equals(a: SearchPhoneNumbersRequest | PlainMessage<SearchPhoneNumbersRequest> | undefined, b: SearchPhoneNumbersRequest | PlainMessage<SearchPhoneNumbersRequest> | undefined): boolean;
}

/**
 * SearchPhoneNumbersResponse - Response containing available phone numbers
 *
 * @generated from message livekit.SearchPhoneNumbersResponse
 */
export declare class SearchPhoneNumbersResponse extends Message<SearchPhoneNumbersResponse> {
  /**
   * List of available phone numbers
   *
   * @generated from field: repeated livekit.PhoneNumber items = 1;
   */
  items: PhoneNumber[];

  /**
   * Token for next page (empty if no more pages)
   *
   * @generated from field: livekit.TokenPagination next_page_token = 2;
   */
  nextPageToken?: TokenPagination;

  constructor(data?: PartialMessage<SearchPhoneNumbersResponse>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.SearchPhoneNumbersResponse";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SearchPhoneNumbersResponse;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SearchPhoneNumbersResponse;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SearchPhoneNumbersResponse;

  static equals(a: SearchPhoneNumbersResponse | PlainMessage<SearchPhoneNumbersResponse> | undefined, b: SearchPhoneNumbersResponse | PlainMessage<SearchPhoneNumbersResponse> | undefined): boolean;
}

/**
 * PurchasePhoneNumberRequest - Request to purchase phone numbers
 *
 * @generated from message livekit.PurchasePhoneNumberRequest
 */
export declare class PurchasePhoneNumberRequest extends Message<PurchasePhoneNumberRequest> {
  /**
   * Phone numbers to purchase (e.g., ["+1234567890", "+1234567891"])
   *
   * @generated from field: repeated string phone_numbers = 1;
   */
  phoneNumbers: string[];

  /**
   * SIP dispatch rule ID to apply to all purchased numbers
   *
   * @generated from field: optional string sip_dispatch_rule_id = 2;
   */
  sipDispatchRuleId?: string;

  constructor(data?: PartialMessage<PurchasePhoneNumberRequest>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.PurchasePhoneNumberRequest";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PurchasePhoneNumberRequest;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PurchasePhoneNumberRequest;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PurchasePhoneNumberRequest;

  static equals(a: PurchasePhoneNumberRequest | PlainMessage<PurchasePhoneNumberRequest> | undefined, b: PurchasePhoneNumberRequest | PlainMessage<PurchasePhoneNumberRequest> | undefined): boolean;
}

/**
 * PurchasePhoneNumberResponse - Response containing the purchased phone numbers
 *
 * @generated from message livekit.PurchasePhoneNumberResponse
 */
export declare class PurchasePhoneNumberResponse extends Message<PurchasePhoneNumberResponse> {
  /**
   * Details of the purchased phone numbers
   *
   * @generated from field: repeated livekit.PhoneNumber phone_numbers = 1;
   */
  phoneNumbers: PhoneNumber[];

  constructor(data?: PartialMessage<PurchasePhoneNumberResponse>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.PurchasePhoneNumberResponse";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PurchasePhoneNumberResponse;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PurchasePhoneNumberResponse;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PurchasePhoneNumberResponse;

  static equals(a: PurchasePhoneNumberResponse | PlainMessage<PurchasePhoneNumberResponse> | undefined, b: PurchasePhoneNumberResponse | PlainMessage<PurchasePhoneNumberResponse> | undefined): boolean;
}

/**
 * ListPhoneNumbersRequest - Request to list phone numbers
 *
 * @generated from message livekit.ListPhoneNumbersRequest
 */
export declare class ListPhoneNumbersRequest extends Message<ListPhoneNumbersRequest> {
  /**
   * Maximum number of results (default: 50)
   *
   * @generated from field: optional int32 limit = 1;
   */
  limit?: number;

  /**
   * Filter by statuses (active, pending, released)
   *
   * @generated from field: repeated livekit.PhoneNumberStatus statuses = 2;
   */
  statuses: PhoneNumberStatus[];

  /**
   * Token for pagination (empty for first page)
   *
   * @generated from field: optional livekit.TokenPagination page_token = 3;
   */
  pageToken?: TokenPagination;

  /**
   * Filter by SIP dispatch rule ID
   *
   * @generated from field: optional string sip_dispatch_rule_id = 4;
   */
  sipDispatchRuleId?: string;

  constructor(data?: PartialMessage<ListPhoneNumbersRequest>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.ListPhoneNumbersRequest";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListPhoneNumbersRequest;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListPhoneNumbersRequest;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListPhoneNumbersRequest;

  static equals(a: ListPhoneNumbersRequest | PlainMessage<ListPhoneNumbersRequest> | undefined, b: ListPhoneNumbersRequest | PlainMessage<ListPhoneNumbersRequest> | undefined): boolean;
}

/**
 * ListPhoneNumbersResponse - Response containing phone numbers
 *
 * @generated from message livekit.ListPhoneNumbersResponse
 */
export declare class ListPhoneNumbersResponse extends Message<ListPhoneNumbersResponse> {
  /**
   * List of phone numbers
   *
   * @generated from field: repeated livekit.PhoneNumber items = 1;
   */
  items: PhoneNumber[];

  /**
   * Token for next page (empty if no more pages)
   *
   * @generated from field: livekit.TokenPagination next_page_token = 2;
   */
  nextPageToken?: TokenPagination;

  /**
   * Total number of phone numbers
   *
   * @generated from field: int32 total_count = 3;
   */
  totalCount: number;

  /**
   * Total number of offline phone numbers
   *
   * @generated from field: int32 offline_count = 4;
   */
  offlineCount: number;

  constructor(data?: PartialMessage<ListPhoneNumbersResponse>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.ListPhoneNumbersResponse";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListPhoneNumbersResponse;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListPhoneNumbersResponse;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListPhoneNumbersResponse;

  static equals(a: ListPhoneNumbersResponse | PlainMessage<ListPhoneNumbersResponse> | undefined, b: ListPhoneNumbersResponse | PlainMessage<ListPhoneNumbersResponse> | undefined): boolean;
}

/**
 * GetPhoneNumberRequest - Request to get a phone number
 *
 * @generated from message livekit.GetPhoneNumberRequest
 */
export declare class GetPhoneNumberRequest extends Message<GetPhoneNumberRequest> {
  /**
   * Use phone number ID for direct lookup
   *
   * @generated from field: optional string id = 1;
   */
  id?: string;

  /**
   * Use phone number string for lookup
   *
   * @generated from field: optional string phone_number = 2;
   */
  phoneNumber?: string;

  constructor(data?: PartialMessage<GetPhoneNumberRequest>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.GetPhoneNumberRequest";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetPhoneNumberRequest;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetPhoneNumberRequest;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetPhoneNumberRequest;

  static equals(a: GetPhoneNumberRequest | PlainMessage<GetPhoneNumberRequest> | undefined, b: GetPhoneNumberRequest | PlainMessage<GetPhoneNumberRequest> | undefined): boolean;
}

/**
 * GetPhoneNumberResponse - Response containing the phone number
 *
 * @generated from message livekit.GetPhoneNumberResponse
 */
export declare class GetPhoneNumberResponse extends Message<GetPhoneNumberResponse> {
  /**
   * The phone number details
   *
   * @generated from field: livekit.PhoneNumber phone_number = 1;
   */
  phoneNumber?: PhoneNumber;

  constructor(data?: PartialMessage<GetPhoneNumberResponse>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.GetPhoneNumberResponse";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetPhoneNumberResponse;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetPhoneNumberResponse;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetPhoneNumberResponse;

  static equals(a: GetPhoneNumberResponse | PlainMessage<GetPhoneNumberResponse> | undefined, b: GetPhoneNumberResponse | PlainMessage<GetPhoneNumberResponse> | undefined): boolean;
}

/**
 * UpdatePhoneNumberRequest - Request to update a phone number
 *
 * @generated from message livekit.UpdatePhoneNumberRequest
 */
export declare class UpdatePhoneNumberRequest extends Message<UpdatePhoneNumberRequest> {
  /**
   * Use phone number ID for direct lookup
   *
   * @generated from field: optional string id = 1;
   */
  id?: string;

  /**
   * Use phone number string for lookup
   *
   * @generated from field: optional string phone_number = 2;
   */
  phoneNumber?: string;

  /**
   * SIP dispatch rule ID to assign to the phone number
   *
   * @generated from field: optional string sip_dispatch_rule_id = 3;
   */
  sipDispatchRuleId?: string;

  constructor(data?: PartialMessage<UpdatePhoneNumberRequest>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.UpdatePhoneNumberRequest";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdatePhoneNumberRequest;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdatePhoneNumberRequest;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdatePhoneNumberRequest;

  static equals(a: UpdatePhoneNumberRequest | PlainMessage<UpdatePhoneNumberRequest> | undefined, b: UpdatePhoneNumberRequest | PlainMessage<UpdatePhoneNumberRequest> | undefined): boolean;
}

/**
 * UpdatePhoneNumberResponse - Response containing the updated phone number
 *
 * @generated from message livekit.UpdatePhoneNumberResponse
 */
export declare class UpdatePhoneNumberResponse extends Message<UpdatePhoneNumberResponse> {
  /**
   * The updated phone number details
   *
   * @generated from field: livekit.PhoneNumber phone_number = 1;
   */
  phoneNumber?: PhoneNumber;

  constructor(data?: PartialMessage<UpdatePhoneNumberResponse>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.UpdatePhoneNumberResponse";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdatePhoneNumberResponse;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdatePhoneNumberResponse;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdatePhoneNumberResponse;

  static equals(a: UpdatePhoneNumberResponse | PlainMessage<UpdatePhoneNumberResponse> | undefined, b: UpdatePhoneNumberResponse | PlainMessage<UpdatePhoneNumberResponse> | undefined): boolean;
}

/**
 * ReleasePhoneNumbersRequest - Request to release phone numbers
 *
 * @generated from message livekit.ReleasePhoneNumbersRequest
 */
export declare class ReleasePhoneNumbersRequest extends Message<ReleasePhoneNumbersRequest> {
  /**
   * Use phone number IDs for direct lookup
   *
   * @generated from field: repeated string ids = 1;
   */
  ids: string[];

  /**
   * Use phone number strings for lookup
   *
   * @generated from field: repeated string phone_numbers = 2;
   */
  phoneNumbers: string[];

  constructor(data?: PartialMessage<ReleasePhoneNumbersRequest>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.ReleasePhoneNumbersRequest";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ReleasePhoneNumbersRequest;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ReleasePhoneNumbersRequest;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ReleasePhoneNumbersRequest;

  static equals(a: ReleasePhoneNumbersRequest | PlainMessage<ReleasePhoneNumbersRequest> | undefined, b: ReleasePhoneNumbersRequest | PlainMessage<ReleasePhoneNumbersRequest> | undefined): boolean;
}

/**
 * ReleasePhoneNumbersResponse - Response for releasing phone numbers
 *
 * Empty response - operation completed successfully
 *
 * @generated from message livekit.ReleasePhoneNumbersResponse
 */
export declare class ReleasePhoneNumbersResponse extends Message<ReleasePhoneNumbersResponse> {
  constructor(data?: PartialMessage<ReleasePhoneNumbersResponse>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.ReleasePhoneNumbersResponse";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ReleasePhoneNumbersResponse;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ReleasePhoneNumbersResponse;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ReleasePhoneNumbersResponse;

  static equals(a: ReleasePhoneNumbersResponse | PlainMessage<ReleasePhoneNumbersResponse> | undefined, b: ReleasePhoneNumbersResponse | PlainMessage<ReleasePhoneNumbersResponse> | undefined): boolean;
}

/**
 * PhoneNumber - Unified phone number type for inventory and purchased numbers
 *
 * @generated from message livekit.PhoneNumber
 */
export declare class PhoneNumber extends Message<PhoneNumber> {
  /**
   * Unique identifier
   *
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * Phone number in E.164 format (e.g., "+14155552671")
   *
   * @generated from field: string e164_format = 2;
   */
  e164Format: string;

  /**
   * Country code (e.g., "US")
   *
   * @generated from field: string country_code = 3;
   */
  countryCode: string;

  /**
   * Area code (e.g., "415")
   *
   * @generated from field: string area_code = 4;
   */
  areaCode: string;

  /**
   * Number type (mobile, local, toll-free, unknown)
   *
   * @generated from field: livekit.PhoneNumberType number_type = 5;
   */
  numberType: PhoneNumberType;

  /**
   * City/locality (e.g., "San Francisco")
   *
   * @generated from field: string locality = 6;
   */
  locality: string;

  /**
   * State/region (e.g., "CA")
   *
   * @generated from field: string region = 7;
   */
  region: string;

  /**
   * Spam score for fraud detection
   *
   * @generated from field: double spam_score = 8;
   */
  spamScore: number;

  /**
   * Creation timestamp
   *
   * @generated from field: google.protobuf.Timestamp created_at = 9;
   */
  createdAt?: Timestamp;

  /**
   * Last update timestamp
   *
   * @generated from field: google.protobuf.Timestamp updated_at = 10;
   */
  updatedAt?: Timestamp;

  /**
   * Available capabilities (e.g., "voice", "sms")
   *
   * @generated from field: repeated string capabilities = 11;
   */
  capabilities: string[];

  /**
   * Current status
   *
   * @generated from field: livekit.PhoneNumberStatus status = 12;
   */
  status: PhoneNumberStatus;

  /**
   * Assignment timestamp
   *
   * @generated from field: google.protobuf.Timestamp assigned_at = 13;
   */
  assignedAt?: Timestamp;

  /**
   * Release timestamp (if applicable)
   *
   * @generated from field: google.protobuf.Timestamp released_at = 14;
   */
  releasedAt?: Timestamp;

  /**
   * Associated SIP dispatch rule ID (deprecated: use sip_dispatch_rule_ids instead)
   *
   * @generated from field: string sip_dispatch_rule_id = 15 [deprecated = true];
   * @deprecated
   */
  sipDispatchRuleId: string;

  /**
   * Associated SIP dispatch rule IDs
   *
   * @generated from field: repeated string sip_dispatch_rule_ids = 16;
   */
  sipDispatchRuleIds: string[];

  constructor(data?: PartialMessage<PhoneNumber>);

  static readonly runtime: typeof proto3;
  static readonly typeName = "livekit.PhoneNumber";
  static readonly fields: FieldList;

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PhoneNumber;

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PhoneNumber;

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PhoneNumber;

  static equals(a: PhoneNumber | PlainMessage<PhoneNumber> | undefined, b: PhoneNumber | PlainMessage<PhoneNumber> | undefined): boolean;
}

