import { Path, PathElement } from "../Path"; import { IConvergenceEvent } from "../../util/IConvergenceEvent"; import { ConvergenceEventEmitter } from "../../util/ConvergenceEventEmitter"; import { ObservableModel } from "./ObservableModel"; import { ObservableContainerElement } from "./ObservableContainerElement"; export interface ObservableElementEvents { readonly VALUE: string; readonly DETACHED: string; readonly MODEL_CHANGED: string; readonly REFERENCE: string; } export declare const ObservableElementEventConstants: ObservableElementEvents; export interface ObservableElement extends ConvergenceEventEmitter { id(): string; type(): string; path(): Path; relativePath(): PathElement; parent(): ObservableContainerElement; isDetached(): boolean; isAttached(): boolean; value(): T; model(): ObservableModel; toJSON(): any; }