import { Json, VerifyPlayerTokenRequest, VerifyPlayerTokenResponse } from "./types.js"; export type QueryOptions = { before?: string; after?: string; limit?: number; }; export type RequestOptions = { retries?: number; timeout?: number; signal?: AbortSignal; useCache?: boolean; cacheSeconds?: number; }; export type PaginatedRequestOptions = RequestOptions & QueryOptions; export type CacheOptions = { enabled?: boolean; ttl?: number; maxSize?: number; }; export type ClashOfClansClientOptions = { token: string; timeout?: number; retries?: number; cache?: CacheOptions; }; export type ClanSearchOptions = PaginatedRequestOptions & { name?: string; warFrequency?: string; locationId?: number; minMembers?: number; maxMembers?: number; minClanPoints?: number; minClanLevel?: number; labelIds?: number[]; }; export interface ClanEndpoints { search: (options?: ClanSearchOptions) => Promise; get: (clanTag: string, options?: RequestOptions) => Promise; getMembers: (clanTag: string, options?: PaginatedRequestOptions) => Promise; getCurrentWar: (clanTag: string, options?: RequestOptions) => Promise; getWarLog: (clanTag: string, options?: PaginatedRequestOptions) => Promise; getCurrentWarLeagueGroup: (clanTag: string, options?: RequestOptions) => Promise; getWarLeagueWar: (warTag: string, options?: RequestOptions) => Promise; getCapitalRaidSeasons: (clanTag: string, options?: PaginatedRequestOptions) => Promise; } export interface PlayerEndpoints { get: (playerTag: string, options?: RequestOptions) => Promise; getBattlelog: (playerTag: string, options?: RequestOptions) => Promise; verifyToken: (playerTag: string, body: VerifyPlayerTokenRequest, options?: RequestOptions) => Promise; getLeagueHistory: (playerTag: string, options?: RequestOptions) => Promise; } export interface LeagueEndpoints { getLeagueTiers: (options?: PaginatedRequestOptions) => Promise; getLeagueTier: (leagueTierId: number, options?: RequestOptions) => Promise; getLeagues: (options?: PaginatedRequestOptions) => Promise; getLeague: (leagueId: number, options?: RequestOptions) => Promise; getLeagueSeasons: (leagueId: number, options?: PaginatedRequestOptions) => Promise; getLeagueSeasonRankings: (leagueId: number, seasonId: string, options?: PaginatedRequestOptions) => Promise; getLeagueGroup: (leagueGroupTag: string, leagueSeasonId: string, options?: RequestOptions) => Promise; getWarLeagues: (options?: PaginatedRequestOptions) => Promise; getWarLeague: (leagueId: number, options?: RequestOptions) => Promise; getCapitalLeagues: (options?: PaginatedRequestOptions) => Promise; getCapitalLeague: (leagueId: number, options?: RequestOptions) => Promise; getBuilderBaseLeagues: (options?: PaginatedRequestOptions) => Promise; getBuilderBaseLeague: (leagueId: number, options?: RequestOptions) => Promise; } export interface LocationEndpoints { getLocations: (options?: PaginatedRequestOptions) => Promise; getLocation: (locationId: number, options?: RequestOptions) => Promise; getClanRankings: (locationId: number, options?: PaginatedRequestOptions) => Promise; getPlayerRankings: (locationId: number, options?: PaginatedRequestOptions) => Promise; getBuilderBasePlayerRankings: (locationId: number, options?: PaginatedRequestOptions) => Promise; getBuilderBaseClanRankings: (locationId: number, options?: PaginatedRequestOptions) => Promise; getCapitalRankings: (locationId: number, options?: PaginatedRequestOptions) => Promise; } export interface GoldPassEndpoints { getCurrentSeason: (options?: RequestOptions) => Promise; } export interface LabelEndpoints { getPlayerLabels: (options?: PaginatedRequestOptions) => Promise; getClanLabels: (options?: PaginatedRequestOptions) => Promise; } export declare class ClashOfClansClient { #private; readonly clans: ClanEndpoints; readonly players: PlayerEndpoints; readonly leagues: LeagueEndpoints; readonly locations: LocationEndpoints; readonly goldpass: GoldPassEndpoints; readonly labels: LabelEndpoints; constructor(options: string | ClashOfClansClientOptions); fetch(endpoint: string, options?: RequestOptions): Promise; clearCache(): void; invalidateCache(endpoint?: string): void; private validatedLeagueId; private validatedLocationId; private clanSearchQuery; private request; private send; private parseResponse; private httpError; private delay; }