/**
 * Logger.ts
 * Centralized logger for FastApi.ts — structured, typed, and console-friendly.
 *
 * Output format:  {gray timestamp} {color}[COMPONENT]{/} {color}message{/}
 *
 * Color logic:
 *  - error   → bright red   (level always wins)
 *  - warn    → yellow       (level always wins)
 *  - debug   → magenta      (level always wins)
 *  - verbose → gray         (level always wins)
 *  - info / startup / perf / etc. → component identity color
 */
import type { LogLevel, LogComponent, LogType } from "../types";
import { LoggerConfig } from "./DEFAULT_LOGGER_CONFIG";
export declare class Logger {
    private static instance;
    static getInstance(config?: LoggerConfig): Logger;
    private config;
    private buffer;
    private flushTimer?;
    private isDisposed;
    private palette;
    private compColors;
    private levelColors;
    private logQueue;
    private isProcessingQueue;
    private errorCount;
    private lastErrorTime;
    private suppressedComponents;
    constructor(config?: LoggerConfig);
    private applyColors;
    error(component: LogComponent, message: string, ...args: any[]): void;
    warn(component: LogComponent, message: string, ...args: any[]): void;
    info(component: LogComponent, message: string, ...args: any[]): void;
    debug(component: LogComponent, message: string, ...args: any[]): void;
    verbose(component: LogComponent, message: string, ...args: any[]): void;
    startup(component: LogComponent, message: string, ...args: any[]): void;
    performance(component: LogComponent, message: string, ...args: any[]): void;
    hotReload(component: LogComponent, message: string, ...args: any[]): void;
    portSwitching(component: LogComponent, message: string, ...args: any[]): void;
    success(component: LogComponent, message: string, ...args: any[]): void;
    securityWarning(message: string, ...args: any[]): void;
    updateConfig(config: LoggerConfig): void;
    getConfig(): LoggerConfig;
    getLevel(): LogLevel;
    isEnabled(): boolean;
    isComponentEnabled(component: LogComponent): boolean;
    isTypeEnabled(type: LogType): boolean;
    getStats(): {
        errorCount: number;
        lastErrorTime: number;
        suppressedComponents: ("middleware" | "server" | "cache" | "cluster" | "performance" | "fileWatcher" | "plugins" | "security" | "monitoring" | "routes" | "userApp" | "typescript" | "console" | "other" | "router" | "acpes" | "ipc" | "memory" | "lifecycle" | "routing" | "xems")[];
        bufferSize: number;
        queueSize: number;
    };
    clearSuppression(): void;
    flush(): void;
    dispose(): void;
    /** Create a scoped child logger inheriting (and optionally overriding) config. */
    child(_component: LogComponent, config?: Partial<LoggerConfig>): Logger;
    private log;
    private drainQueue;
    private shouldLog;
    private shouldSuppressError;
    private writeEntry;
    /**
     * Produces a log line:
     *
     *   {gray}HH:MM:SS.mmm{/} {color}[COMPONENT]{/} {color}message{/}
     *
     * Color priority:
     *   1. Level color  — error=brightRed, warn=yellow, debug=magenta, verbose=gray
     *   2. Component color — each component has its own identity color (for info-class)
     *
     * Tag and message always share the same color so they read as one visual unit.
     */
    private formatEntry;
    /** Human-readable uppercase label for a component. */
    private componentLabel;
    private truncate;
    private readMemoryMB;
    private readProcessId;
    /** Bypass all filters — used only for logger-internal failures. */
    private emergencyLog;
    private initBuffer;
    private initErrorHandling;
    private deepMerge;
}
/** Shared singleton — ready to use immediately. */
export declare const logger: Logger;
/** Configure and return the singleton logger. */
export declare function initializeLogger(config?: LoggerConfig): Logger;
/** Flush + dispose the singleton — call on graceful shutdown. */
export declare function cleanupLogger(): void;
//# sourceMappingURL=Logger.d.ts.map