/// import Queue from './Queue'; import { Metadata } from './Metadata'; import { Actor } from './Actor'; import * as Clock from './Clock'; import { ToBackendQueryMsg, ToBackendRepoMsg, ToFrontendRepoMsg } from './RepoMsg'; import { Change } from 'automerge'; import * as DocBackend from './DocBackend'; import { ActorId, DocId, RepoId } from './Misc'; import FeedStore from './FeedStore'; import FileStore from './FileStore'; import Network from './Network'; import NetworkPeer from './NetworkPeer'; import { Swarm, JoinOptions } from './SwarmInterface'; import { PeerMsg } from './PeerMsg'; import ClockStore from './ClockStore'; import CursorStore from './CursorStore'; import MessageRouter from './MessageRouter'; import KeyStore from './KeyStore'; import ReplicationManager, { Discovery } from './ReplicationManager'; export interface FeedData { actorId: ActorId; writable: Boolean; changes: Change[]; } export interface Options { path?: string; memory?: boolean; } export declare class RepoBackend { path?: string; storage: Function; feeds: FeedStore; keys: KeyStore; files: FileStore; clocks: ClockStore; cursors: CursorStore; actors: Map; docs: Map; meta: Metadata; opts: Options; toFrontend: Queue; id: RepoId; network: Network; messages: MessageRouter; replication: ReplicationManager; lockRelease?: () => void; swarmKey: Buffer; private db; private fileServer; constructor(opts: Options); startFileServer: (path: string) => void; private create; localActorId(docId: DocId): ActorId | undefined; private debug; private open; merge(id: DocId, clock: Clock.Clock): void; close: () => Promise; private allReadyActors; private loadDocument; private getReadyActor; storageFn: (path: string) => (name: string) => any; initActorFeed(doc: DocBackend.DocBackend): ActorId; actorIds(doc: DocBackend.DocBackend): ActorId[]; docActors(doc: DocBackend.DocBackend): Actor[]; syncReadyActors: (ids: ActorId[]) => void; private getGoodClock; private documentNotify; onPeer: (peer: NetworkPeer) => void; onDiscovery: ({ feedId, peer }: Discovery) => void; private onMessage; private actorNotify; private initActor; syncChanges: (actor: Actor) => void; /** @deprecated Use addSwarm */ setSwarm: (swarm: Swarm, joinOptions?: JoinOptions | undefined) => void; addSwarm: (swarm: Swarm, joinOptions?: JoinOptions | undefined) => void; removeSwarm: (swarm: Swarm) => void; subscribe: (subscriber: (message: ToFrontendRepoMsg) => void) => void; handleQuery: (id: number, query: ToBackendQueryMsg) => Promise; receive: (msg: ToBackendRepoMsg) => void; actor(id: ActorId): Actor | undefined; }