import { stringify } from 'safe-stable-stringify';
import { M as Meta, d as LoggerTypesConfig, e as LiteralUnion, a as DefaultLogTypes, P as Processor, E as ExtendedRfc5424LogLevels, R as Reporter, C as ConstructorOptions, b as LoggerFunction } from './types-BGWAKixQ.mjs';

declare class PailBrowserImpl<T extends string = string, L extends string = string> {
    protected timersMap: Map<string, number>;
    protected countMap: Map<string, number>;
    protected seqTimers: Set<string>;
    protected readonly lastLog: {
        count?: number;
        object?: Meta<L>;
        serialized?: string;
        time?: Date;
        timeout?: ReturnType<typeof setTimeout>;
    };
    protected readonly logLevels: Record<string, number>;
    protected disabled: boolean;
    protected scopeName: string[];
    protected readonly types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>;
    protected readonly longestLabel: string;
    protected readonly processors: Set<Processor<L>>;
    protected readonly generalLogLevel: LiteralUnion<ExtendedRfc5424LogLevels, L>;
    protected reporters: Set<Reporter<L>>;
    protected readonly throttle: number;
    protected readonly throttleMin: number;
    protected readonly stringify: typeof stringify;
    protected groups: string[];
    protected readonly startTimerMessage: string;
    protected readonly endTimerMessage: string;
    protected rawReporter: Reporter<L>;
    constructor(options: ConstructorOptions<T, L>);
    wrapConsole(): void;
    restoreConsole(): void;
    wrapException(): void;
    disable(): void;
    enable(): void;
    isEnabled(): boolean;
    scope<N extends string = T>(...name: string[]): PailBrowserType<N, L>;
    unscope(): void;
    time(label?: string): void;
    timeLog(label?: string, ...data: unknown[]): void;
    timeEnd(label?: string): void;
    group(label?: string): void;
    groupEnd(): void;
    count(label?: string): void;
    countReset(label?: string): void;
    clear(): void;
    raw(message: string, ...arguments_: unknown[]): void;
    protected extendReporter(reporter: Reporter<L>): Reporter<L>;
    protected registerReporters(reporters: Reporter<L>[]): void;
    private _report;
    private registerProcessors;
    private _normalizeLogLevel;
    private _buildMeta;
    private _logger;
}
type PailBrowserType<T extends string = string, L extends string = string> = PailBrowserImpl<T, L> & Record<DefaultLogTypes, LoggerFunction> & Record<T, LoggerFunction> & (new <TC extends string = string, LC extends string = string>(options?: ConstructorOptions<TC, LC>) => PailBrowserType<TC, LC>);

export { type PailBrowserType as P, PailBrowserImpl as a };
