import type { JsUint } from './common.js';
import type { ScriptRemoteValue, ScriptSource, ScriptStackTrace } from './script.js';
export type LogEvent = LogEntryAdded;
export type LogLevel = "debug" | "info" | "warn" | "error";
export type LogEntry = LogGenericLogEntry | LogConsoleLogEntry | LogJavascriptLogEntry;
export interface LogBaseLogEntry {
    level: LogLevel;
    source: ScriptSource;
    text: string | null;
    timestamp: JsUint;
    stackTrace?: ScriptStackTrace;
}
export type LogGenericLogEntry = LogBaseLogEntry & {
    type: string;
};
export type LogConsoleLogEntry = LogBaseLogEntry & {
    type: "console";
    method: string;
    args: ScriptRemoteValue[];
};
export type LogJavascriptLogEntry = LogBaseLogEntry & {
    type: "javascript";
};
export interface LogEntryAdded {
    method: "log.entryAdded";
    params: LogEntry;
}
/** @deprecated Use {@link Log.create} instead — will be removed in a future major version. */
export declare function getLogInspectorInstance(driver: unknown): Promise<Log>;
export declare class Log {
    private readonly bidi;
    private constructor();
    static create(driver: unknown): Promise<Log>;
    onEntryAdded(callback: (params: LogEntry) => void): Promise<void>;
    onConsoleEntry(callback: (params: LogEntry) => void): Promise<void>;
    onJavascriptLog(callback: (params: LogEntry) => void): Promise<void>;
    onJavascriptException(callback: (params: LogEntry) => void): Promise<void>;
    onLog(callback: (params: LogEntry) => void): Promise<void>;
}
