import Queue from './Queue'; import MapSet from './MapSet'; import { ToBackendQueryMsg, ToBackendRepoMsg, ToFrontendRepoMsg } from './RepoMsg'; import { Handle } from './Handle'; import { Doc, Patch, ChangeFn } from 'automerge'; import { DocFrontend } from './DocFrontend'; import { Clock } from './Clock'; import { PublicMetadata } from './Metadata'; import { DocUrl, DocId, ActorId, HyperfileId, HyperfileUrl } from './Misc'; import FileServerClient from './FileServerClient'; import { CryptoClient } from './CryptoClient'; import { Crawler } from './Crawler'; export interface DocMetadata { clock: Clock; history: number; actor?: ActorId; } export interface ProgressEvent { actor: ActorId; index: number; size: number; time: number; } export declare class RepoFrontend { toBackend: Queue; docs: Map>; cb: Map void>; msgcb: Map void>; readFiles: MapSet void>; files: FileServerClient; crypto: CryptoClient; crawler: Crawler; constructor(); create: (init?: T | undefined) => DocUrl; change: (url: DocUrl, fn: ChangeFn) => void; meta: (url: DocUrl | HyperfileUrl, cb: (meta: PublicMetadata | undefined) => void) => void; meta2: (url: DocUrl | HyperfileUrl) => DocMetadata | undefined; merge: (url: DocUrl, target: DocUrl) => void; fork: (url: DocUrl) => DocUrl; watch: (url: DocUrl, cb: (val: import("automerge").FreezeObject, clock?: Clock | undefined, index?: number | undefined) => void) => Handle; message: (url: DocUrl, contents: T) => void; doc: (url: DocUrl, cb?: ((val: import("automerge").FreezeObject, clock?: Clock | undefined) => void) | undefined) => Promise>; materialize: (url: DocUrl, history: number, cb: (val: import("automerge").FreezeObject) => void) => void; queryBackend: (query: ToBackendQueryMsg, cb: (arg: any) => void) => void; open: (url: DocUrl, crawl?: boolean) => Handle; debug(url: DocUrl): void; private openDocFrontend; subscribe: (subscriber: (message: ToBackendRepoMsg) => void) => void; close: () => void; destroy: (url: DocUrl) => void; receive: (msg: ToFrontendRepoMsg) => void; }