/**
 * Enhanced logging framework with feature flag support
 * Supports both Pino (default) and mcp-logger implementations
 */
import { RuntimeOptions } from "../types/runtime.js";
import { LoggerInterface, LoggingConfig, LogContext, LogLevel } from "./logger/interfaces.js";
export type { LogContext, LogLevel, LoggingConfig };
export declare const DEFAULT_LOGGING_CONFIG: LoggingConfig;
/**
 * Create logging configuration based on runtime options and environment
 */
export declare function createLoggingConfig(runtimeOptions?: RuntimeOptions): LoggingConfig;
/**
 * Logger class that wraps the feature-flag-selected implementation
 * Maintains backward compatibility with existing API
 */
export declare class Logger implements LoggerInterface {
    private implementation;
    private childLoggerCache;
    constructor(config?: Partial<LoggingConfig>, runtimeOptions?: RuntimeOptions);
    fatal(message: string, context?: LogContext): void;
    error(message: string, 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;
    child(bindings: {
        module?: string;
        [key: string]: unknown;
    }): Logger;
    updateConfig(config: Partial<LoggingConfig>): void;
    get pino(): any;
    get mcp(): any;
    /**
     * Get cache statistics for diagnostics
     */
    getCacheStats(): {
        childLoggerCount: number;
        cacheSize: number;
        cacheKeys: string[];
    };
}
/**
 * Get or create the global logger instance
 */
export declare function getLogger(config?: Partial<LoggingConfig>, runtimeOptions?: RuntimeOptions): Logger;
/**
 * Async version of getLogger that properly initializes feature flags
 */
export declare function getLoggerAsync(config?: Partial<LoggingConfig>, runtimeOptions?: RuntimeOptions): Promise<Logger>;
/**
 * Get the currently active logging configuration
 */
export declare function getActiveLoggingConfig(): Partial<LoggingConfig> | null;
/**
 * Create a child logger with module context
 * This maintains backward compatibility with the existing API
 */
export declare function createChildLogger(bindings: {
    module: string;
}): Logger;
/**
 * Async version of createChildLogger that properly initializes feature flags
 */
export declare function createChildLoggerAsync(bindings: {
    module: string;
}): Promise<Logger>;
/**
 * Get diagnostic information about the logging system
 * Useful for debugging EventEmitter memory leaks
 */
export declare function getLoggerDiagnostics(): {
    hasGlobalLogger: boolean;
    implementationType: string;
    cacheStats?: any;
};
/**
 * Reset global logger state (mainly for testing)
 */
export declare function resetGlobalLogger(): void;
/**
 * Force feature flag for testing
 */
export declare function forceSetMcpLoggerEnabled(enabled: boolean): void;
//# sourceMappingURL=logging.d.ts.map