import { ConvergenceEventEmitter, IConvergenceEvent } from "../../util"; import { Path, PathElement } from "../Path"; import { ModelReference, ReferenceFilter } from "../reference"; import { RealTimeModel } from "./RealTimeModel"; import { ObservableElement, ObservableElementEvents } from "../observable/ObservableElement"; import { RealTimeContainerElement } from "./RealTimeContainerElement"; export interface RealTimeElementEvents extends ObservableElementEvents { } export declare abstract class RealTimeElement extends ConvergenceEventEmitter implements ObservableElement { static readonly Events: RealTimeElementEvents; model(): RealTimeModel; id(): string; type(): string; path(): Path; parent(): RealTimeContainerElement; relativePath(): PathElement; removeFromParent(): void; isDetached(): boolean; isAttached(): boolean; value(): T; value(value: T): void; toJSON(): any; reference(sessionId: string, key: string): ModelReference; references(referenceFilter?: ReferenceFilter): ModelReference[]; }