UNPKG

@convergence/convergence

Version:
71 lines (70 loc) 2.84 kB
import { ConvergenceEventEmitter, IConvergenceEvent } from "../../util"; import { RealTimeObject } from "./RealTimeObject"; import { LocalElementReference, ModelReference, ReferenceFilter } from "../reference"; import { RealTimeElement } from "./RealTimeElement"; import { ConvergenceSession } from "../../ConvergenceSession"; import { ModelCollaborator } from "./ModelCollaborator"; import { Observable } from "rxjs"; import { ObservableModel, ObservableModelEvents } from "../observable/ObservableModel"; import { ModelPermissionManager } from "../ModelPermissionManager"; import { ModelPermissions } from "../ModelPermissions"; import { Path, PathElement } from "../Path"; export interface RealTimeModelEvents extends ObservableModelEvents { readonly RESYNC_STARTED: string; readonly RESYNC_COMPLETED: string; readonly RESYNC_ERROR: string; readonly REMOTE_RESYNC_STARTED: string; readonly REMOTE_RESYNC_COMPLETED: string; readonly OFFLINE: string; readonly ONLINE: string; readonly RECONNECTING: string; readonly MODIFIED: string; readonly COMMITTED: string; readonly COLLABORATOR_OPENED: string; readonly COLLABORATOR_CLOSED: string; readonly REFERENCE: string; readonly PERMISSIONS_CHANGED: string; } export declare class RealTimeModel extends ConvergenceEventEmitter<IConvergenceEvent> implements ObservableModel { static readonly Events: RealTimeModelEvents; permissions(): ModelPermissions; permissionsManager(): ModelPermissionManager; session(): ConvergenceSession; emitLocalEvents(): boolean; emitLocalEvents(emit: boolean): void; collaborators(): ModelCollaborator[]; resynchronizingCollaborators(): ModelCollaborator[]; collaboratorsAsObservable(): Observable<ModelCollaborator[]>; collectionId(): string; modelId(): string; time(): Date; minTime(): Date; maxTime(): Date; createdTime(): Date; version(): number; minVersion(): number; maxVersion(): number; isCommitted(): boolean; root(): RealTimeObject; elementAt(path: Path): RealTimeElement; elementAt(...path: PathElement[]): RealTimeElement; isOpen(): boolean; isLocal(): boolean; close(): Promise<void>; isClosing(): boolean; whenClosed(): Promise<void>; startBatch(): void; endBatch(): void; completeBatch(): void; batchSize(): number; cancelBatch(): void; isBatchStarted(): boolean; elementReference(key: string): LocalElementReference; reference(sessionId: string, key: string): ModelReference<any>; references(filter?: ReferenceFilter): ModelReference<any>[]; subscribeOffline(): Promise<void>; unsubscribeOffline(): Promise<void>; isSubscribedOffline(): boolean; private _processServerOperationEvent; private _handleModelResyncServerComplete; }