import { Orientation } from "./Orientation"; import { Rect } from "./Rect"; import { IJsonBorderNode, IJsonTabGroupNode, IJsonRowNode, IJsonTabNode, IJsonTabSetNode } from "./IJsonModel"; import { Model } from "./Model"; export declare abstract class Node { getId(): string; getModel(): Model; getType(): string; getParent(): Node | undefined; getChildren(): Node[]; getRect(): Rect; getPath(): string; isCloseable(): boolean; isAllowedInWindow(): boolean; getOrientation(): Orientation; getLayoutId(): string; getLayoutRef(): HTMLElement | null; /** * Get the browser window that this node is currently rendered in. * This is the main window for nodes in the main layout and the popout window * for nodes rendered inside a popout. Returns undefined before the layout has * been mounted. */ getWindow(): Window | undefined; /** * Get the document that this node is currently rendered in (the document of * the main window or of a popout window). Returns undefined before the layout * has been mounted. */ getDocument(): Document | undefined; setEventListener(event: NodeEventType, callback: (params: any) => void): void; removeEventListener(event: NodeEventType): void; abstract toJson(): IJsonRowNode | IJsonBorderNode | IJsonTabSetNode | IJsonTabGroupNode | IJsonTabNode | undefined; getAttributeOwn(name: string): any; } export type NodeEventType = "save" | "resize" | "visibility" | "close";