import Ref from './Ref'; import { Supplier } from './types'; export interface WatcherDependency { object: any; propName: string; } export interface WatcherEventListener { onInvalidate(): void; onRecompute(newExecutionResult: T, previousExecutionResult?: T): void; } export declare type WatcherSource = Ref | Supplier; export default class Watcher { private readonly callback; private readonly options; private executionResult; private dependencies; private invalidated; constructor(source: WatcherSource, options: WatcherEventListener); private dependencyInvalidationListener; private isDependency; stop(): void; private invalidate; private onInvalidate; getResult(): T; private recompute; private onRecompute; } //# sourceMappingURL=Watcher.d.ts.map