/**
 * Logging utilities for MCP Maple
 * Provides structured logging for API operations and errors
 */
export interface LogContext {
    operation?: string;
    characterName?: string;
    guildName?: string;
    endpoint?: string;
    params?: Record<string, any>;
    duration?: number;
    error?: any;
    success?: boolean;
    worldName?: string;
    toolName?: string;
    [key: string]: any;
}
export declare class McpLogger {
    private logger;
    constructor(component?: string);
    info(message: string, context?: LogContext): void;
    warn(message: string, context?: LogContext): void;
    error(message: string, context?: LogContext): void;
    debug(message: string, context?: LogContext): void;
    logApiRequest(endpoint: string, params?: Record<string, any>): void;
    logApiResponse(endpoint: string, duration: number, success: boolean): void;
    logApiError(endpoint: string, error: any, duration?: number): void;
    logCharacterOperation(operation: string, characterName: string, context?: any): void;
    logGuildOperation(operation: string, guildName: string, worldName?: string, context?: any): void;
    logMcpOperation(operation: string, toolName: string, context?: any): void;
    logSecurityEvent(event: string, context?: LogContext): void;
    logAuditEvent(action: string, resource: string, user?: string, context?: LogContext): void;
    logPerformanceMetric(metric: string, value: number, unit?: string, context?: LogContext): void;
    logCacheOperation(operation: 'hit' | 'miss' | 'set' | 'delete' | 'clear', key: string, context?: LogContext): void;
    logRecoveryAttempt(strategy: string, error: Error, attempt: number, success: boolean, context?: LogContext): void;
    logHealthCheck(component: string, status: 'healthy' | 'unhealthy' | 'degraded', details?: any): void;
    logRateLimit(action: 'applied' | 'exceeded' | 'reset', context?: LogContext): void;
    logError(error: Error, context?: LogContext): void;
    private sanitizeLogData;
    flushLogs(): Promise<void>;
    createChild(context: LogContext): McpLogger;
}
export declare class PerformanceMonitor {
    private metrics;
    private logger;
    constructor(logger: McpLogger);
    startTimer(operation: string): () => void;
    recordMetric(operation: string, duration: number): void;
    getMetrics(): Record<string, {
        count: number;
        avgTime: number;
        minTime: number;
        maxTime: number;
        totalTime: number;
    }>;
    clearMetrics(): void;
    logSummary(): void;
}
export declare class RequestTracker {
    private requests;
    private logger;
    constructor(logger: McpLogger);
    startRequest(requestId: string, context: LogContext): void;
    endRequest(requestId: string, success: boolean, additionalContext?: LogContext): void;
    getActiveRequests(): string[];
    cleanupStaleRequests(maxAge?: number): void;
}
export declare const defaultLogger: McpLogger;
export declare const performanceMonitor: PerformanceMonitor;
export declare const requestTracker: RequestTracker;
//# sourceMappingURL=logger.d.ts.map