export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
export interface Logger {
    debug(message: string, ...args: any[]): void;
    info(message: string, ...args: any[]): void;
    warn(message: string, ...args: any[]): void;
    error(message: string, ...args: any[]): void;
}
export declare class SilentLogger implements Logger {
    debug(): void;
    info(): void;
    warn(): void;
    error(): void;
}
export declare class ConsoleLogger implements Logger {
    private prefix;
    private level;
    constructor(prefix?: string, level?: LogLevel);
    private shouldLog;
    debug(message: string, ...args: any[]): void;
    info(message: string, ...args: any[]): void;
    warn(message: string, ...args: any[]): void;
    error(message: string, ...args: any[]): void;
}
export declare class LoggerFactory {
    private static instance;
    static setLogger(logger: Logger): void;
    static getLogger(): Logger;
    static createConsoleLogger(level?: LogLevel): Logger;
    static createSilentLogger(): Logger;
    static reset(): void;
}
export declare function getLogger(logLevel?: LogLevel): Logger;
