/**
 * Logger - Centralized logging service for discord-mcp-server
 * Provides structured logging with centralized log shipping capability
 */
import { LogShipper } from './log-shipper.js';
export type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR' | 'FATAL';
export interface LoggerConfig {
    logLevel: LogLevel;
    component: string;
    enableConsole: boolean;
    enableShipping: boolean;
    serverName: string;
    logShipper?: LogShipper;
}
export declare class Logger {
    private config;
    private batcher;
    private logLevelPriority;
    constructor(config: LoggerConfig);
    /**
     * Log a debug message
     */
    debug(action: string, message: string, metadata?: any): void;
    /**
     * Log an info message
     */
    info(action: string, message: string, metadata?: any): void;
    /**
     * Log a warning message
     */
    warn(action: string, message: string, metadata?: any): void;
    /**
     * Log an error message
     */
    error(action: string, message: string, metadata?: any): void;
    /**
     * Log a fatal error message
     */
    fatal(action: string, message: string, metadata?: any): void;
    /**
     * Core logging method
     */
    private log;
    /**
     * Log HTTP request start
     */
    logRequestStart(method: string, url: string, metadata?: any): void;
    /**
     * Log HTTP request success
     */
    logRequestSuccess(method: string, url: string, status: number, duration: number, metadata?: any): void;
    /**
     * Log HTTP request error
     */
    logRequestError(method: string, url: string, error: any, duration: number, metadata?: any): void;
    /**
     * Log tool execution start
     */
    logToolStart(toolName: string, params: any): void;
    /**
     * Log tool execution success
     */
    logToolSuccess(toolName: string, duration: number, responseData?: any, httpStatus?: number): void;
    /**
     * Log tool execution error
     */
    logToolError(toolName: string, error: any, duration: number, params?: any): void;
    /**
     * Log authentication events
     */
    logAuthEvent(event: string, success: boolean, metadata?: any): void;
    /**
     * Log rate limiting events
     */
    logRateLimit(action: string, delayMs: number, metadata?: any): void;
    /**
     * Truncate large data objects to prevent oversized log entries
     */
    private truncateIfNeeded;
    /**
     * Get logger status
     */
    getStatus(): {
        config: LoggerConfig;
        batcherStatus?: any;
    };
    /**
     * Shutdown logger and flush remaining logs
     */
    shutdown(): Promise<void>;
}
//# sourceMappingURL=logger.d.ts.map