import { Log } from 'json-joy/lib/json-crdt/log/Log'; import { type JsonNode, Model, type Patch } from 'json-joy/lib/json-crdt'; import { Subject } from 'rxjs'; import type { BlockId, LocalRepo } from '../local/types'; export declare class EditSession> { readonly repo: LocalRepo; readonly id: BlockId; protected start: Model; cursor: undefined | unknown; protected readonly session: number; log: Log; protected _stopped: boolean; protected _stop$: Subject; onsyncerror?: (error: Error | unknown) => void; private _syncRace; get model(): Model; constructor(repo: LocalRepo, id: BlockId, start: Model, cursor?: undefined | unknown, session?: number); dispose(): void; protected clear(): void; private saveInProgress; /** * Push (persist) any in-memory changes and pull (load) the latest state * from the local repo. */ sync(): Promise; }>; syncLog(): void; del(): Promise; /** * Load latest state from the local repo. */ load(): Promise; loadSilent(): void; protected reset(model: Model): void; protected rebase(patches: Patch[]): void; protected merge(patches: Patch[]): void; private events; private onEvent; private drainEvents; }