import { LogFunction } from "./logger.js";
import { BaseLog, NormalizedLogArguments } from "./base-log.js";
import { LocalStorage } from "../utils/local-storage.js";
/** "Global" log configuration settings */
type ProbeLogConfiguration = {
    enabled?: boolean;
    level?: number;
    [key: string]: unknown;
};
/** A console wrapper */
export declare class ProbeLog extends BaseLog {
    static VERSION: any;
    id: string;
    VERSION: string;
    _startTs: number;
    _deltaTs: number;
    _storage: LocalStorage<Record<string, ProbeLogConfiguration>>;
    userData: {};
    LOG_THROTTLE_TIMEOUT: number;
    constructor({ id }?: {
        id: string;
    });
    isEnabled(): boolean;
    getLevel(): number;
    /** @return milliseconds, with fractions */
    getTotal(): number;
    /** @return milliseconds, with fractions */
    getDelta(): number;
    /** @deprecated use logLevel */
    set priority(newPriority: number);
    /** @deprecated use logLevel */
    get priority(): number;
    /** @deprecated use logLevel */
    getPriority(): number;
    enable(enabled?: boolean): this;
    setLevel(level: number): this;
    /** return the current status of the setting */
    get(setting: string): any;
    set(setting: string, value: any): void;
    /** Logs the current settings as a table */
    settings(): void;
    assert(condition: unknown, message?: string): asserts condition;
    /** Warn, but only once, no console flooding */
    warn(message: string, ...args: unknown[]): LogFunction;
    /** Print an error */
    error(message: string, ...args: unknown[]): LogFunction;
    /** Print a deprecation warning */
    deprecated(oldUsage: string, newUsage: string): LogFunction;
    /** Print a removal warning */
    removed(oldUsage: string, newUsage: string): LogFunction;
    /** Log to a group */
    probe(logLevel: any, message?: any, ...args: unknown[]): LogFunction;
    /** Log a debug message */
    log(logLevel: any, message?: any, ...args: unknown[]): LogFunction;
    /** Log a normal message */
    info(logLevel: any, message?: any, ...args: unknown[]): LogFunction;
    /** Log a normal message, but only once, no console flooding */
    once(logLevel: any, message?: any, ...args: unknown[]): LogFunction;
    /** Logs an object as a table */
    table(logLevel: any, table?: any, columns?: any): LogFunction;
    time(logLevel: any, message: any): LogFunction;
    timeEnd(logLevel: any, message: any): LogFunction;
    timeStamp(logLevel: any, message?: any): LogFunction;
    group(logLevel: any, message: any, opts?: {
        collapsed: boolean;
    }): LogFunction;
    groupCollapsed(logLevel: any, message: any, opts?: {}): LogFunction;
    groupEnd(logLevel: any): LogFunction;
    withGroup(logLevel: number, message: string, func: Function): void;
    trace(): void;
    protected _shouldLog(logLevel: unknown): boolean;
    protected _emit(_type: string, normalized: NormalizedLogArguments): LogFunction;
    _getConfiguration(): Required<ProbeLogConfiguration>;
    _updateConfiguration(configuration: ProbeLogConfiguration): void;
}
export { normalizeArguments } from "./log-utils.js";
export { normalizeLogLevel } from "./log-utils.js";
//# sourceMappingURL=probe-log.d.ts.map