import { CLIConfig } from '../types';
export interface LogEntry {
    timestamp: string;
    level: 'debug' | 'info' | 'warn' | 'error';
    message: string;
    context?: string;
    metadata?: Record<string, any>;
}
export declare class Logger {
    private static instance;
    private verbose;
    private logLevel;
    private logFormat;
    private logOutput;
    private logFilePath?;
    private logBuffer;
    private maxBufferSize;
    private constructor();
    static getInstance(): Logger;
    configure(config: Partial<CLIConfig['logging']>): void;
    setVerbose(verbose: boolean): void;
    private shouldLog;
    private createLogEntry;
    private writeLog;
    private writeToConsole;
    info(message: string, context?: string, metadata?: Record<string, any>): void;
    success(message: string, context?: string, metadata?: Record<string, any>): void;
    warning(message: string, context?: string, metadata?: Record<string, any>): void;
    error(message: string, context?: string, metadata?: Record<string, any>): void;
    debug(message: string, context?: string, metadata?: Record<string, any>): void;
    progress(message: string, context?: string): void;
    header(message: string): void;
    section(message: string): void;
    table(data: Record<string, any>[]): void;
    logValidationErrors(errors: any[], context?: string): void;
    logValidationWarnings(warnings: any[], context?: string): void;
    logPerformanceMetrics(metrics: any, context?: string): void;
    getLogBuffer(): LogEntry[];
    clearLogBuffer(): void;
    exportLogs(outputPath: string): Promise<void>;
}
