import type { Logger, LoggerNamespace, LogContext, LoggerOptions } from './Logger';
export declare class DefaultLogger implements Logger {
    private readonly options;
    debugMode: boolean | LoggerNamespace[];
    readonly writer: (message: string) => void;
    private readonly usesReplicas?;
    private readonly highlighter?;
    constructor(options: LoggerOptions);
    /**
     * @inheritDoc
     */
    log(namespace: LoggerNamespace, message: string, context?: LogContext): void;
    /**
     * @inheritDoc
     */
    error(namespace: LoggerNamespace, message: string, context?: LogContext): void;
    /**
     * @inheritDoc
     */
    warn(namespace: LoggerNamespace, message: string, context?: LogContext): void;
    /**
     * @inheritDoc
     */
    setDebugMode(debugMode: boolean | LoggerNamespace[]): void;
    isEnabled(namespace: LoggerNamespace, context?: LogContext): boolean;
    /**
     * @inheritDoc
     */
    logQuery(context: {
        query: string;
    } & LogContext): void;
    static create(options: LoggerOptions): DefaultLogger;
}
