/**
 * NEXON MapleStory Open API Client
 * Provides methods to interact with NEXON's official MapleStory API
 */
import { ApiClientConfig, CharacterOcid, CharacterBasic, CharacterStat, CharacterHyperStat, CharacterPropensity, CharacterAbility, ItemEquipment, CharacterPopularity, SymbolEquipment, SetEffect, AndroidEquipment, PetEquipment, CharacterSkill, LinkSkill, VMatrix, HexaMatrix, HexaMatrixStat, DojangRecord, UnionInfo, UnionRaider, UnionArtifact, GuildId, GuildBasic, OverallRanking, UnionRanking, GuildRanking, DojangRanking, TheSeedRanking, AchievementRanking } from './types';
import { ServerStatus } from '../utils/server-utils';
export declare class NexonApiClient {
    private client;
    private logger;
    private mcpLogger;
    private apiKey;
    private requestQueue;
    private isProcessingQueue;
    private cache;
    private errorAggregator;
    constructor(config: ApiClientConfig);
    private setupInterceptors;
    private getErrorName;
    private getErrorMessage;
    private waitForRateLimit;
    private processQueue;
    private retryRequest;
    private isRetryableError;
    private request;
    getCharacterOcid(characterName: string): Promise<CharacterOcid>;
    getCharacterBasic(ocid: string, date?: string): Promise<CharacterBasic>;
    getCharacterStat(ocid: string, date?: string): Promise<CharacterStat>;
    getCharacterHyperStat(ocid: string, date?: string): Promise<CharacterHyperStat>;
    getCharacterPropensity(ocid: string, date?: string): Promise<CharacterPropensity>;
    getCharacterAbility(ocid: string, date?: string): Promise<CharacterAbility>;
    getCharacterItemEquipment(ocid: string, date?: string): Promise<ItemEquipment>;
    getCharacterCashItemEquipment(ocid: string, date?: string): Promise<any>;
    getCharacterBeautyEquipment(ocid: string, date?: string): Promise<any>;
    getUnionInfo(ocid: string, date?: string): Promise<UnionInfo>;
    getUnionRaider(ocid: string, date?: string): Promise<UnionRaider>;
    getGuildId(guildName: string, worldName: string): Promise<GuildId>;
    getGuildBasic(oguildId: string, date?: string): Promise<GuildBasic>;
    /**
     * Search for guilds with fuzzy matching
     */
    searchGuilds(searchTerm: string, worldName: string, limit?: number): Promise<Array<{
        guildName: string;
        guildId: string;
        matchScore: number;
        guildInfo?: GuildBasic;
    }>>;
    /**
     * Get comprehensive guild analysis
     */
    getGuildAnalysis(guildName: string, worldName: string, date?: string): Promise<{
        basic: GuildBasic;
        metrics: {
            guildScore: number;
            level: number;
            memberCount: number;
            rankingPosition: number | null;
        };
        recommendations: string[];
        guildId: string;
    }>;
    /**
     * Generate guild improvement recommendations
     */
    private generateGuildRecommendations;
    getOverallRanking(worldName?: string, worldType?: string, className?: string, ocid?: string, page?: number, date?: string): Promise<OverallRanking>;
    getUnionRanking(worldName?: string, ocid?: string, page?: number, date?: string): Promise<UnionRanking>;
    getGuildRanking(worldName: string, rankingType: number, guildName?: string, page?: number, date?: string): Promise<GuildRanking>;
    getCharacterFullInfo(characterName: string, date?: string): Promise<{
        ocid: string;
        basic: CharacterBasic;
        stat: CharacterStat;
        hyperStat: CharacterHyperStat;
        propensity: CharacterPropensity;
        ability: CharacterAbility;
        equipment: ItemEquipment;
        cashItems: any;
        beautyEquipment: any;
    }>;
    /**
     * Get comprehensive character analysis including equipment stats and set effects
     */
    getCharacterAnalysis(characterName: string, date?: string): Promise<{
        analysis: {
            equipment: {
                setEffects: import("../utils/equipment-analyzer").SetEffect[];
                enhancementScores: {
                    itemName: string;
                    slot: string;
                    enhancement: import("../utils/equipment-analyzer").EquipmentEnhancement;
                    score: number;
                }[];
                totalCombatPower: number;
            };
            characterScore: number;
            recommendations: string[];
        };
        ocid: string;
        basic: CharacterBasic;
        stat: CharacterStat;
        hyperStat: CharacterHyperStat;
        propensity: CharacterPropensity;
        ability: CharacterAbility;
        equipment: ItemEquipment;
        cashItems: any;
        beautyEquipment: any;
    }>;
    /**
     * Calculate total combat power from character stats
     */
    private calculateTotalCombatPower;
    /**
     * Calculate overall character score
     */
    private calculateCharacterScore;
    /**
     * Generate improvement recommendations
     */
    private generateRecommendations;
    getGuildFullInfo(guildName: string, worldName: string, date?: string): Promise<{
        oguild_id: string;
        basic: GuildBasic;
    }>;
    healthCheck(): Promise<{
        status: string;
        timestamp: string;
    }>;
    /**
     * Get comprehensive server status for all worlds
     */
    getServerStatus(worldName?: string): Promise<{
        status: ServerStatus;
        worlds: Array<{
            worldName: string;
            status: ServerStatus;
            population: 'high' | 'medium' | 'low' | 'unknown';
            lastUpdate: string;
        }>;
        maintenance?: any;
        timestamp: string;
    }>;
    /**
     * Find character's position in overall ranking
     */
    findCharacterRankingPosition(characterName: string, worldName?: string, className?: string, maxPages?: number): Promise<{
        found: boolean;
        position?: number;
        entry?: any;
        searchedPages: number;
    }>;
    /**
     * Find guild's position in guild ranking
     */
    findGuildRankingPosition(guildName: string, worldName: string, rankingType?: number, maxPages?: number): Promise<{
        found: boolean;
        position?: number;
        entry?: any;
        searchedPages: number;
    }>;
    /**
     * Get comprehensive ranking analysis
     */
    getRankingAnalysis(worldName?: string, className?: string, pages?: number): Promise<{
        overall: any;
        union?: any;
        guild?: any;
        statistics: any;
        topCharacters: any[];
        topGuilds: any[];
    }>;
    getErrorSummary(): {
        total: number;
        byType: Record<string, number>;
        byCode: Record<string, number>;
    };
    clearErrorHistory(): void;
    getPerformanceMetrics(): Record<string, {
        count: number;
        avgTime: number;
        minTime: number;
        maxTime: number;
        totalTime: number;
    }>;
    logPerformanceSummary(): void;
    getClientHealth(): Promise<{
        status: 'healthy' | 'degraded' | 'unhealthy';
        errors: {
            total: number;
            byType: Record<string, number>;
            byCode: Record<string, number>;
        };
        performance: Record<string, any>;
        cache: {
            size: number;
            hit_rate?: number;
        };
        uptime: number;
    }>;
    withErrorRecovery<T>(operation: () => Promise<T>, fallbackValue?: T, maxAttempts?: number): Promise<T>;
    executeBatch<T>(operations: Array<{
        name: string;
        operation: () => Promise<T>;
    }>, continueOnError?: boolean): Promise<{
        results: T[];
        errors: any[];
    }>;
    /**
     * Get character popularity information
     */
    getCharacterPopularity(ocid: string, date?: string): Promise<CharacterPopularity>;
    /**
     * Get character symbol equipment
     */
    getCharacterSymbolEquipment(ocid: string, date?: string): Promise<SymbolEquipment>;
    /**
     * Get character set effects
     */
    getCharacterSetEffect(ocid: string, date?: string): Promise<SetEffect>;
    /**
     * Get character android equipment
     */
    getCharacterAndroidEquipment(ocid: string, date?: string): Promise<AndroidEquipment>;
    /**
     * Get character pet equipment
     */
    getCharacterPetEquipment(ocid: string, date?: string): Promise<PetEquipment>;
    /**
     * Get character skills
     */
    getCharacterSkill(ocid: string, date?: string): Promise<CharacterSkill>;
    /**
     * Get character link skills
     */
    getCharacterLinkSkill(ocid: string, date?: string): Promise<LinkSkill>;
    /**
     * Get character V-Matrix
     */
    getCharacterVMatrix(ocid: string, date?: string): Promise<VMatrix>;
    /**
     * Get character Hexa Matrix
     */
    getCharacterHexaMatrix(ocid: string, date?: string): Promise<HexaMatrix>;
    /**
     * Get character Hexa Matrix stats
     */
    getCharacterHexaMatrixStat(ocid: string, date?: string): Promise<HexaMatrixStat>;
    /**
     * Get character Dojang record
     */
    getCharacterDojang(ocid: string, date?: string): Promise<DojangRecord>;
    /**
     * Get union artifact information
     */
    getUnionArtifact(ocid: string, date?: string): Promise<UnionArtifact>;
    /**
     * Get Dojang rankings
     */
    getDojangRanking(worldName?: string, characterName?: string, page?: number, date?: string): Promise<DojangRanking>;
    /**
     * Get The Seed rankings
     */
    getTheSeedRanking(worldName?: string, characterName?: string, page?: number, date?: string): Promise<TheSeedRanking>;
    /**
     * Get Achievement rankings
     */
    getAchievementRanking(worldName?: string, characterName?: string, page?: number, date?: string): Promise<AchievementRanking>;
}
//# sourceMappingURL=nexon-client.d.ts.map