@convergence/convergence
Version:
Convergence JavaScript Client
71 lines (70 loc) • 2.84 kB
TypeScript
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;
}