import type { SanityClient } from '@sanity/client'; import { Annotation } from '@sanity/field/diff'; import { Observable } from 'rxjs'; import { Diff, ObjectDiff } from '@sanity/diff'; import { Timeline } from './Timeline'; import { RemoteSnapshotVersionEvent, Chunk } from './types'; export declare type Options = { timeline: Timeline; client: SanityClient; documentId: string; documentType: string; handler: (err: Error | null, controller: Controller) => void; }; /** * The controller is responsible for fetching information * about a document and maintaining a Timeline. */ export declare class Controller { timeline: Timeline; client: SanityClient; handler: Options['handler']; version: number; /** * The selection state represents the different states of the current selection: * - inactive: No selection is active. * - rev: A selection is active for a single revision. * - range: A selection is active for a range and we have all the data needed to render it. * - loading: A selection is active, but we don't have the entries yet. * - invalid: The selection picked is invalid. */ selectionState: 'inactive' | 'rev' | 'range' | 'loading' | 'invalid'; constructor(options: Options); private _aligner; private _fetchMore; private _fetchAtLeast; private _isRunning; private _didErr; private _since; private _sinceTime; private _rev; private _revTime; clearRange(): void; setRange(since: string | null, rev: string | null): void; setLoadMore(state: boolean): void; get sinceTime(): Chunk | null; get revTime(): Chunk | null; get realRevChunk(): Chunk; /** Returns true when there's an older revision we want to render. */ onOlderRevision(): boolean; /** Returns true when the changes panel should be active. */ changesPanelActive(): boolean; findRangeForNewRev(rev: Chunk): [string | null, string | null]; findRangeForNewSince(since: Chunk): [string, string | null]; setRevTime(rev: string | null): void; setSinceTime(since: string | null): void; sinceAttributes(): Record | null; displayed(): Record | null; private _reconstruction?; setReconstruction(since: Chunk | null, rev: Chunk): void; currentDiff(): Diff | null; currentObjectDiff(): ObjectDiff | null; handleRemoteMutation(ev: RemoteSnapshotVersionEvent): void; start(): void; private tick; private fetchMoreTransactions; private markChange; } export declare function createObservableController(options: Omit): Observable<{ historyController: Controller; }>; //# sourceMappingURL=Controller.d.ts.map