import { Collab, CollabEventsRecord, InitToken } from "./collab"; import { CollabID } from "./collab_id"; import { EventEmitter, EventsRecord } from "./event_emitter"; import { IRuntime } from "./iruntime"; import { Parent } from "./parent"; import { MetaRequest } from "./updates"; /** * Skeletal implementation of [[IRuntime]] that uses * a root [[Collab]]. */ export declare abstract class AbstractRuntime extends EventEmitter implements IRuntime { readonly isRuntime: true; /** * A unique ID for this * [replica](https://collabs.readthedocs.io/en/latest/advanced/updates.html#terminology) * (copy of a Collabs document). */ readonly replicaID: string; protected rootCollab: Collab & Parent; /** * @param replicaID This replica's `replicaID`, usually * obtained from [[ReplicaIDs]]. Must not be `""`. */ constructor(replicaID: string); protected setRootCollab(rootCallback: (init: InitToken) => C): C; idOf>(collab: C): CollabID; fromID>(id: CollabID): C | undefined; abstract childSend(child: Collab, messageStack: (Uint8Array | string)[], metaRequests: MetaRequest[]): void; }