/**
 * Server status and game information utilities
 * Optimized for MapleStory SEA region with proper timezone and date formatting
 */
/**
 * Server status types
 */
export declare enum ServerStatus {
    ONLINE = "online",
    OFFLINE = "offline",
    MAINTENANCE = "maintenance",
    UNSTABLE = "unstable",
    UNKNOWN = "unknown"
}
/**
 * SEA timezone offset (UTC+8)
 */
export declare const SEA_TIMEZONE_OFFSET: number;
/**
 * SEA timezone identifier
 */
export declare const SEA_TIMEZONE = "Asia/Singapore";
/**
 * Convert UTC date to SEA timezone using proper timezone handling
 */
export declare function convertToSEATime(date: Date | string): Date;
/**
 * Get current time in SEA timezone
 */
export declare function getCurrentSEATime(): Date;
/**
 * Format date for SEA region display in DD/MM/YYYY format
 */
export declare function formatSEADate(date: Date | string, includeTime?: boolean): string;
/**
 * Format time for SEA region display in 24-hour format
 */
export declare function formatSEATime(date: Date | string): string;
/**
 * Get current SEA date in DD/MM/YYYY format
 */
export declare function getCurrentSEADate(): string;
/**
 * Get current SEA time string in HH:MM:SS format
 */
export declare function getCurrentSEATimeString(): string;
/**
 * Convert date to API format (YYYY-MM-DD)
 */
export declare function formatDateForAPI(date: Date | string): string;
/**
 * Parse SEA date string (DD/MM/YYYY) to Date object
 */
export declare function parseSEADate(dateString: string): Date;
/**
 * Check if date is today in SEA timezone
 */
export declare function isTodayInSEA(date: Date | string): boolean;
/**
 * Get yesterday's date in SEA timezone
 */
export declare function getYesterdaySEA(): string;
/**
 * Get tomorrow's date in SEA timezone
 */
export declare function getTomorrowSEA(): string;
/**
 * Extract maintenance time from content (SEA API does not support notices)
 * This function is kept for backward compatibility but always returns null
 */
export declare function extractMaintenanceTime(_content: string): {
    startTime?: Date;
    endTime?: Date;
    duration?: string;
} | null;
/**
 * Check if server is likely in maintenance based on time patterns
 * Updated for SEA server maintenance schedules
 */
export declare function isMaintenanceTime(): boolean;
/**
 * Get next daily reset time in SEA timezone (00:00 SGT)
 */
export declare function getNextDailyReset(): Date;
/**
 * Get time until next daily reset in SEA timezone
 */
export declare function getTimeUntilDailyReset(): {
    hours: number;
    minutes: number;
    seconds: number;
    totalMs: number;
};
/**
 * Get next weekly reset time (Wednesday 00:00 SGT)
 */
export declare function getNextWeeklyReset(): Date;
/**
 * Determine server status based on various factors
 */
export declare function determineServerStatus(apiAvailable: boolean, maintenanceNotices: any[], errorRate?: number): ServerStatus;
/**
 * Parse world population level from ranking data
 */
/**
 * Check if it's currently during data update time (08:00-09:30 SGT)
 */
export declare function isDuringDataUpdate(): boolean;
/**
 * Get next data update time
 */
export declare function getNextDataUpdate(): Date;
export declare function estimateWorldPopulation(rankingData: any): 'high' | 'medium' | 'low' | 'unknown';
/**
 * Format content for display (SEA API does not support notices)
 * This function is kept for backward compatibility
 */
/**
 * Format number for SEA region display (using English locale)
 */
export declare function formatSEANumber(num: number): string;
/**
 * Format currency for SEA region (Mesos)
 */
export declare function formatSEAMesos(amount: number): string;
/**
 * Format percentage for SEA region
 */
export declare function formatSEAPercentage(value: number, decimals?: number): string;
export declare function formatNoticeContent(content: string, maxLength?: number): string;
/**
 * SEA-specific event and reset schedules
 */
export declare const SEA_SCHEDULES: {
    readonly DAILY_RESET: {
        readonly hour: 0;
        readonly minute: 0;
    };
    readonly WEEKLY_RESET: {
        readonly day: 3;
        readonly hour: 0;
        readonly minute: 0;
    };
    readonly MAINTENANCE_WINDOWS: {
        readonly WEEKLY: {
            readonly day: 3;
            readonly startHour: 8;
            readonly endHour: 12;
        };
        readonly EMERGENCY: {
            readonly startHour: 1;
            readonly endHour: 6;
        };
        readonly PATCH: {
            readonly day: 2;
            readonly startHour: 23;
            readonly endHour: 3;
        };
    };
    readonly DATA_UPDATES: {
        readonly CHARACTER: {
            readonly hour: 8;
            readonly minute: 0;
        };
        readonly RANKINGS: {
            readonly hour: 8;
            readonly minute: 30;
        };
        readonly UNION: {
            readonly hour: 9;
            readonly minute: 0;
        };
    };
};
/**
 * Generate cache keys for server-related data
 */
export declare const ServerCacheKeys: {
    serverStatus: (worldName?: string) => string;
    events: () => string;
    maintenance: () => string;
    dailyReset: () => string;
    weeklyReset: () => string;
};
//# sourceMappingURL=server-utils.d.ts.map