import type { Logger, LoggerNamespace, LogContext, LoggerOptions } from './Logger.js';
/** Default logger implementation with colored output, query formatting, and namespace-based filtering. */
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;
    /** Checks whether logging is enabled for the given namespace, considering context overrides. */
    isEnabled(namespace: LoggerNamespace, context?: LogContext): boolean;
    /**
     * @inheritDoc
     */
    logQuery(context: {
        query: string;
    } & LogContext): void;
    /** Factory method for creating a new DefaultLogger instance. */
    static create(this: void, options: LoggerOptions): DefaultLogger;
}
