import { DisposableStore, IDisposable } from '../../../base/common/lifecycle'; import { IReader, IObservable, IObserver, IChangeContext } from '../../../base/common/observableInternal/base'; export declare function autorunOpts(options: { debugName: string | (() => string | undefined); }, fn: (reader: IReader) => void): IDisposable; export declare function autorun(fn: (reader: IReader) => void): IDisposable; export declare function autorunHandleChanges(options: { debugName?: string | (() => string | undefined); createEmptyChangeSummary?: () => TChangeSummary; handleChange: (context: IChangeContext, changeSummary: TChangeSummary) => boolean; }, fn: (reader: IReader, changeSummary: TChangeSummary) => void): IDisposable; export declare function autorunWithStoreHandleChanges(options: { debugName?: string | (() => string | undefined); createEmptyChangeSummary?: () => TChangeSummary; handleChange: (context: IChangeContext, changeSummary: TChangeSummary) => boolean; }, fn: (reader: IReader, changeSummary: TChangeSummary, store: DisposableStore) => void): IDisposable; export declare function autorunWithStore(fn: (reader: IReader, store: DisposableStore) => void): IDisposable; export declare class AutorunObserver implements IObserver, IReader, IDisposable { private readonly _debugName; readonly _runFn: (reader: IReader, changeSummary: TChangeSummary) => void; private readonly createChangeSummary; private readonly _handleChange; private state; private updateCount; private disposed; private dependencies; private dependenciesToBeRemoved; private changeSummary; get debugName(): string; constructor(_debugName: string | (() => string | undefined) | undefined, _runFn: (reader: IReader, changeSummary: TChangeSummary) => void, createChangeSummary: (() => TChangeSummary) | undefined, _handleChange: ((context: IChangeContext, summary: TChangeSummary) => boolean) | undefined); dispose(): void; private _runIfNeeded; toString(): string; beginUpdate(): void; endUpdate(): void; handlePossibleChange(observable: IObservable): void; handleChange(observable: IObservable, change: TChange): void; readObservable(observable: IObservable): T; } export declare namespace autorun { const Observer: typeof AutorunObserver; } export declare function autorunDelta(observable: IObservable, handler: (args: { lastValue: T | undefined; newValue: T; }) => void): IDisposable;