export declare enum LogLevel {
    ERROR = 0,
    WARN = 1,
    INFO = 2,
    DEBUG = 3,
    TRACE = 4
}
export interface LogContext {
    [key: string]: any;
}
export interface LogEntry {
    timestamp: string;
    level: LogLevel;
    message: string;
    context?: LogContext;
    error?: Error;
    stack?: string;
}
declare class Logger {
    private static instance;
    private logLevel;
    private isProduction;
    private constructor();
    static getInstance(): Logger;
    private parseLogLevel;
    private shouldLog;
    private formatMessage;
    private log;
    error(message: string, error?: Error, context?: LogContext): void;
    warn(message: string, context?: LogContext): void;
    info(message: string, context?: LogContext): void;
    debug(message: string, context?: LogContext): void;
    trace(message: string, context?: LogContext): void;
    time(label: string): () => void;
    methodEntry(className: string, methodName: string, args?: any): void;
    methodExit(className: string, methodName: string, result?: any): void;
    asyncOperation<T>(operationName: string, operation: () => Promise<T>, context?: LogContext): Promise<T>;
}
export declare const logger: Logger;
export declare function createLogger(context: LogContext): {
    error: (message: string, error?: Error, additionalContext?: LogContext) => void;
    warn: (message: string, additionalContext?: LogContext) => void;
    info: (message: string, additionalContext?: LogContext) => void;
    debug: (message: string, additionalContext?: LogContext) => void;
    trace: (message: string, additionalContext?: LogContext) => void;
};
export {};
//# sourceMappingURL=logger.d.ts.map