import { Dexie, DexieEvent, DexieEventSet, Unsubscribable } from 'dexie'; import * as Y from 'yjs'; import { getDocCache } from './docCache'; import { Disposable } from './helpers/Disposable'; interface ReleaseOptions { gracePeriod?: number; } declare class DexieYProvider { refCount: number; private stopObserving; private cleanupHandlers; private graceTimer; private graceTimeout; doc: Y.Doc | null; awareness?: any; private _error?; private _whenLoaded; private _whenSynced; on: DexieEventSet & ((name: string, f: (...args: any[]) => any) => void); off: (name: string, f: (...args: any[]) => any) => void; destroyed: boolean; static on: DexieEventSet & ((name: string, f: (...args: any[]) => any) => void) & { new: DexieEvent; beforeunload: DexieEvent; }; static getOrCreateDocument(db: Dexie, table: string, prop: string, id: any): Y.Doc; static load(doc: Y.Doc, options?: ReleaseOptions): DexieYProvider; static release(doc: Y.Doc): void; private _release; static for(doc: Y.Doc): DexieYProvider | undefined; static getDocCache: typeof getDocCache; static get currentUpdateRow(): import("./types").YUpdateRow | null; get whenLoaded(): Promise; get whenSynced(): Promise; constructor(doc: Y.Doc); destroy(): void; addCleanupHandler(cleanupHandler: (() => void) | Unsubscribable): void; } interface DexieYProvider extends Disposable { } export { DexieYProvider };