import { Event } from '../../../base/common/event'; import { DisposableStore, IDisposable } from '../../../base/common/lifecycle'; import { BaseObservable, IObservable, IReader, ITransaction } from '../../../base/common/observableInternal/base'; /** * Represents an efficient observable whose value never changes. */ export declare function constObservable(value: T): IObservable; export declare function observableFromPromise(promise: Promise): IObservable<{ value?: T; }>; export declare function waitForState(observable: IObservable, predicate: (state: T) => state is TState): Promise; export declare function waitForState(observable: IObservable, predicate: (state: T) => boolean): Promise; export declare function observableFromEvent(event: Event, getValue: (args: TArgs | undefined) => T): IObservable; export declare class FromEventObservable extends BaseObservable { private readonly event; readonly _getValue: (args: TArgs | undefined) => T; private value; private hasValue; private subscription; constructor(event: Event, _getValue: (args: TArgs | undefined) => T); private getDebugName; get debugName(): string; protected onFirstObserverAdded(): void; private readonly handleEvent; protected onLastObserverRemoved(): void; get(): T; } export declare namespace observableFromEvent { const Observer: typeof FromEventObservable; } export declare function observableSignalFromEvent(debugName: string, event: Event): IObservable; /** * Creates a signal that can be triggered to invalidate observers. * Signals don't have a value - when they are triggered they indicate a change. * However, signals can carry a delta that is passed to observers. */ export declare function observableSignal(debugName: string): IObservableSignal; export declare function observableSignal(owner: object): IObservableSignal; export interface IObservableSignal extends IObservable { trigger(tx: ITransaction | undefined, change: TChange): void; } export declare function debouncedObservable(observable: IObservable, debounceMs: number, disposableStore: DisposableStore): IObservable; export declare function wasEventTriggeredRecently(event: Event, timeoutMs: number, disposableStore: DisposableStore): IObservable; /** * This makes sure the observable is being observed and keeps its cache alive. */ export declare function keepObserved(observable: IObservable): IDisposable; /** * This converts the given observable into an autorun. */ export declare function recomputeInitiallyAndOnChange(observable: IObservable): IDisposable; export declare function derivedObservableWithCache(computeFn: (reader: IReader, lastValue: T | undefined) => T): IObservable; export declare function derivedObservableWithWritableCache(owner: object, computeFn: (reader: IReader, lastValue: T | undefined) => T): IObservable & { clearCache(transaction: ITransaction): void; };