import { c as RealmTypeCapitalized, r as RealmLocales, s as RealmTimezone, t as RealmCategory } from "./types-gA98D5Xw.js";
import { BaseSearchParameters, BlizzardNamespaces, Href, KeyBase, Locales, NameIdKey, Resource, ResponseBase, SearchResponseWithoutResults } from "@blizzard-api/core";

//#region src/connected-realm/types.d.ts
/**
 * Connected Realm Index API response.
 * @see https://develop.battle.net/documentation/world-of-warcraft/game-data-apis
 */
interface ConnectedRealmIndexResponse extends ResponseBase {
  connected_realms: Array<Href>;
}
/**
 * Connected Realm API response.
 * @see https://develop.battle.net/documentation/world-of-warcraft/game-data-apis
 */
interface ConnectedRealmResponse extends ResponseBase {
  auctions: Href;
  has_queue: boolean;
  id: number;
  population: {
    name: string;
    type: RealmPopulationCapitalized;
  };
  pvp_season?: Href;
  realm_locked_status?: RealmLockedStatus;
  realms: Array<Realm$1>;
  status: {
    name: string;
    type: RealmStatusCapitalized;
  };
}
/**
 * Connected Realm Search API parameters.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
 */
interface ConnectedRealmSearchParameters extends BaseSearchParameters {
  'realms.timezone'?: RealmTimezone;
  'status.type'?: RealmStatusCapitalized;
}
/**
 * Connected Realm Search API response item.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
 */
interface ConnectedRealmSearchResponse extends SearchResponseWithoutResults {
  results: Array<ConnectedRealmSearchResponseItem>;
}
interface ConnectedRealmSearchResponseItem extends KeyBase {
  data: {
    has_queue: boolean;
    id: number;
    population: SearchRealmPopulation;
    realms: Array<SearchRealm>;
    status: SearchRealmStatus;
  };
}
interface Realm$1 {
  category: RealmCategory;
  connected_realm: Href;
  id: number;
  is_tournament: boolean;
  locale: RealmLocales;
  name: string;
  region: NameIdKey;
  slug: string;
  timezone: RealmTimezone;
  type: {
    name: string;
    type: RealmTypeCapitalized;
  };
}
interface RealmLockedStatus {
  is_locked_for_new_characters: boolean;
  is_locked_for_pct: boolean;
}
type RealmPopulationCapitalized = 'FULL' | 'HIGH' | 'LOCKED' | 'LOW' | 'MEDIUM' | 'RECOMMENDED';
type RealmStatusCapitalized = 'DOWN' | 'UP';
interface SearchRealm {
  category: Record<Locales, string>;
  id: number;
  is_tournament: boolean;
  locale: RealmLocales;
  name: Record<Locales, string | undefined>;
  region: {
    id: number;
    name: Record<Locales, string>;
  };
  slug: string;
  timezone: RealmTimezone;
  type: {
    name: Record<Locales, string>;
    type: RealmTypeCapitalized;
  };
}
interface SearchRealmPopulation {
  name: Record<Locales, string>;
  type: RealmPopulationCapitalized;
}
interface SearchRealmStatus {
  name: Record<Locales, string>;
  type: RealmStatusCapitalized;
}
//#endregion
//#region src/connected-realm/index.d.ts
/**
 * Returns a connected realm by ID.
 * @param namespace The namespace to use. See {@link BlizzardNamespaces}.
 * @param connectedRealmId The connected realm ID.
 * @returns The connected realm. See {@link ConnectedRealmResponse}.
 */
declare function connectedRealm(namespace: Extract<BlizzardNamespaces, 'dynamic-classic1x' | 'dynamic-classic'>, connectedRealmId: number): Resource<ConnectedRealmResponse>;
/**
 * Returns an index of connected realms.
 * @param namespace The namespace to use. See {@link BlizzardNamespaces}.
 * @returns The connected realm index. See {@link ConnectedRealmIndexResponse}.
 */
declare function connectedRealmIndex(namespace: Extract<BlizzardNamespaces, 'dynamic-classic1x' | 'dynamic-classic'>): Resource<ConnectedRealmIndexResponse>;
/**
 * Performs a search of connected realms.
 * @param namespace The namespace to use. See {@link BlizzardNamespaces}.
 * @param options The search parameters. See {@link ConnectedRealmSearchParameters}.
 * @returns The search results. See {@link ConnectedRealmSearchResponse}.
 */
declare function connectedRealmSearch(namespace: Extract<BlizzardNamespaces, 'dynamic-classic1x' | 'dynamic-classic'>, options: ConnectedRealmSearchParameters): Resource<ConnectedRealmSearchResponse, ConnectedRealmSearchParameters>;
//#endregion
export { ConnectedRealmResponse as a, ConnectedRealmIndexResponse as i, connectedRealmIndex as n, ConnectedRealmSearchParameters as o, connectedRealmSearch as r, ConnectedRealmSearchResponse as s, connectedRealm as t };
//# sourceMappingURL=index-BQ-NY0vY.d.ts.map