import { AutorunObserver } from './autorun.js'; import { IObservable, TransactionImpl } from './base.js'; import { Derived } from './derived.js'; import { FromEventObservable } from './utils.js'; export declare function setLogger(logger: IObservableLogger): void; export declare function getLogger(): IObservableLogger | undefined; export declare function logObservable(obs: IObservable): void; interface IChangeInformation { oldValue: unknown; newValue: unknown; change: unknown; didChange: boolean; hadValue: boolean; } export interface IObservableLogger { handleObservableChanged(observable: IObservable, info: IChangeInformation): void; handleFromEventObservableTriggered(observable: FromEventObservable, info: IChangeInformation): void; handleAutorunCreated(autorun: AutorunObserver): void; handleAutorunTriggered(autorun: AutorunObserver): void; handleAutorunFinished(autorun: AutorunObserver): void; handleDerivedCreated(observable: Derived): void; handleDerivedRecomputed(observable: Derived, info: IChangeInformation): void; handleDerivedCleared(observable: Derived): void; handleBeginTransaction(transaction: TransactionImpl): void; handleEndTransaction(): void; } export declare class ConsoleObservableLogger implements IObservableLogger { private indentation; private _filteredObjects; addFilteredObj(obj: unknown): void; private _isIncluded; private textToConsoleArgs; private formatInfo; handleObservableChanged(observable: IObservable, info: IChangeInformation): void; private readonly changedObservablesSets; formatChanges(changes: Set>): ConsoleText | undefined; handleDerivedCreated(derived: Derived): void; handleDerivedRecomputed(derived: Derived, info: IChangeInformation): void; handleDerivedCleared(derived: Derived): void; handleFromEventObservableTriggered(observable: FromEventObservable, info: IChangeInformation): void; handleAutorunCreated(autorun: AutorunObserver): void; handleAutorunTriggered(autorun: AutorunObserver): void; handleAutorunFinished(autorun: AutorunObserver): void; handleBeginTransaction(transaction: TransactionImpl): void; handleEndTransaction(): void; } type ConsoleText = (ConsoleText | undefined)[] | { text: string; style: string; data?: unknown[]; } | { data: unknown[]; }; export {};