maplestorysea-mcp-server
Version:
NEXON MapleStory SEA API MCP Server for Claude Desktop - Complete character info, union details, guild data, rankings optimized for SEA servers
109 lines • 3.1 kB
TypeScript
/**
* Ranking system utilities
*/
/**
* Ranking types supported by the API
*/
export declare enum RankingType {
OVERALL = "overall",
UNION = "union",
GUILD = "guild",
DOJANG = "dojang",
THESEED = "theseed",
ACHIEVEMENT = "achievement"
}
/**
* Guild ranking types
*/
export declare enum GuildRankingType {
FLAG_RACE = 0,
GUILD_POWER = 1
}
/**
* Validate page number for ranking queries
*/
export declare function validatePage(page: number): void;
/**
* Validate ranking type
*/
export declare function validateRankingType(type: string): void;
/**
* Validate guild ranking type
*/
export declare function validateGuildRankingType(type: number): void;
/**
* Calculate ranking position from page and index
*/
export declare function calculateRankingPosition(page: number, index: number, pageSize?: number): number;
/**
* Calculate page from ranking position
*/
export declare function calculatePageFromPosition(position: number, pageSize?: number): number;
/**
* Format ranking data for display
*/
export declare function formatRankingEntry(entry: any, position?: number): any;
/**
* Format large numbers with commas
*/
export declare function formatNumber(num: number | string): string;
/**
* Find character position in ranking data
*/
export declare function findCharacterPosition(rankings: any[], characterName: string, currentPage?: number, pageSize?: number): {
found: boolean;
position?: number;
entry?: any;
};
/**
* Find guild position in ranking data
*/
export declare function findGuildPosition(rankings: any[], guildName: string, currentPage?: number, pageSize?: number): {
found: boolean;
position?: number;
entry?: any;
};
/**
* Generate ranking cache keys
*/
export declare const RankingCacheKeys: {
overall: (worldName?: string, worldType?: string, className?: string, page?: number, date?: string) => string;
union: (worldName?: string, page?: number, date?: string) => string;
guild: (worldName: string, rankingType: number, page?: number, date?: string) => string;
characterPosition: (characterName: string, worldName?: string, className?: string) => string;
guildPosition: (guildName: string, worldName: string, rankingType: number) => string;
};
/**
* Parse ranking response and add metadata
*/
export declare function parseRankingResponse(response: any, page?: number): {
rankings: any[];
pagination: {
currentPage: number;
hasNextPage: boolean;
hasPreviousPage: boolean;
totalEntries?: number;
};
metadata: {
lastUpdate: string;
rankingType: string;
worldName?: string;
};
};
/**
* Merge ranking data from multiple pages for position search
*/
export declare function mergeRankingPages(pages: any[]): any[];
/**
* Calculate ranking statistics
*/
export declare function calculateRankingStats(rankings: any[]): {
totalEntries: number;
levelRange: {
min: number;
max: number;
};
averageLevel: number;
topGuilds?: string[];
};
//# sourceMappingURL=ranking-utils.d.ts.map