export declare enum LogLevel {
    ERROR = 0,
    WARN = 1,
    INFO = 2,
    DEBUG = 3
}
interface LoggerOptions {
    showInProd?: boolean;
    includeTimestamp?: boolean;
    maxDepth?: number;
    maxStringLength?: number;
    enableCircularHandling?: boolean;
    domElementFormat?: "inspect" | "summary" | "disabled";
    prettyPrint?: boolean;
    indentSize?: number;
    colors?: boolean;
    logLevel?: LogLevel;
    namespace?: string;
    enabled?: boolean;
    context?: Record<string, unknown>;
}
declare class Logger {
    private showInProd;
    private includeTimestamp;
    private maxDepth;
    private maxStringLength;
    private enableCircularHandling;
    private domElementFormat;
    private prettyPrint;
    private indentSize;
    private useColors;
    private logLevel;
    private namespace;
    private enabled;
    private env;
    private consoleColors;
    private browserColors;
    private context;
    constructor(options?: LoggerOptions, context?: Record<string, unknown>);
    /**
     * Returns a new Logger instance with merged context.
     * Useful for request-scoped logging (Wide Events pattern).
     */
    child(context: Record<string, unknown>): Logger;
    /**
     * Alias for child(context).
     */
    withContext(context: Record<string, unknown>): Logger;
    /**
     * Adds context to the current logger instance.
     */
    addContext(context: Record<string, unknown>): void;
    /**
     * Sets the context, overwriting existing context.
     */
    setContext(context: Record<string, unknown>): void;
    /**
     * Clears all context.
     */
    clearContext(): void;
    /**
     * Sets the log level.
     * @param {LogLevel} level - The new log level
     */
    setLogLevel(level: LogLevel): void;
    /**
     * Enables or disables logging.
     * @param {boolean} enabled - Whether to enable logging
     */
    setEnabled(enabled: boolean): void;
    private getEnvironment;
    private getCallerInfo;
    private formatMetadata;
    private mergeContextWithArgs;
    private formatDOMElement;
    private colorizeText;
    private getIndentation;
    private formatArgument;
    private _log;
    log(...args: unknown[]): void;
    debug(...args: unknown[]): void;
    info(...args: unknown[]): void;
    warn(...args: unknown[]): void;
    error(...args: unknown[]): void;
    group(label: string): void;
    groupEnd(): void;
    time(label: string): void;
    timeEnd(label: string): void;
}
declare const logger: Logger;
export { Logger, logger, type LoggerOptions };
