import { LogItem } from "./LogItem"; import { LogLevel, LogFilter } from "./LogFilter"; import type { ILogger, ILogReporter, FilterCreator, LabelOrValues, LogCallback, ILogItem, ISerializedItem } from "./types"; import type { Platform } from "../platform/web/Platform.js"; export declare class Logger implements ILogger { protected _openItems: Set; protected _platform: Platform; protected _serializedTransformer: (item: ISerializedItem) => ISerializedItem; readonly reporters: ILogReporter[]; constructor({ platform }: { platform: any; }); log(labelOrValues: LabelOrValues, logLevel?: LogLevel): ILogItem; /** Prefer `run()` or `log()` above this method; only use it if you have a long-running operation * *without* a single call stack that should be logged into one sub-tree. * You need to call `finish()` on the returned item or it will stay open until the app unloads. */ child(labelOrValues: LabelOrValues, logLevel?: LogLevel, filterCreator?: FilterCreator): ILogItem; /** if item is a log item, wrap the callback in a child of it, otherwise start a new root log item. */ wrapOrRun(item: ILogItem | undefined, labelOrValues: LabelOrValues, callback: LogCallback, logLevel?: LogLevel, filterCreator?: FilterCreator): T; /** run a callback in detached mode, where the (async) result or errors are not propagated but still logged. Useful to pair with LogItem.refDetached. @return {ILogItem} the log item added, useful to pass to LogItem.refDetached */ runDetached(labelOrValues: LabelOrValues, callback: LogCallback, logLevel?: LogLevel, filterCreator?: FilterCreator): ILogItem; /** run a callback wrapped in a log operation. Errors and duration are transparently logged, also for async operations. Whatever the callback returns is returned here. */ run(labelOrValues: LabelOrValues, callback: LogCallback, logLevel?: LogLevel, filterCreator?: FilterCreator): T; private _run; addReporter(reporter: ILogReporter): void; getOpenRootItems(): Iterable; forceFinish(): void; /** @internal */ _removeItemFromOpenList(item: LogItem): void; /** @internal */ _persistItem(item: LogItem, filter?: LogFilter, forced?: boolean): void; get level(): typeof LogLevel; /** @internal */ _now(): number; /** @internal */ _createRefId(): number; }