import { Rect } from "./Rect"; import { IJsonSubLayout } from "./IJsonModel"; import { Node } from "./Node"; import { ILayoutType } from "./IJsonModel"; /** * A layout within the model: the main layout, a sublayout hosted in a tab, or a popout * (a native window or floating panel) layout. Layouts are passed to the popout props * ({@link ILayoutProps.renderPopoutContent}, {@link ILayoutProps.onPopoutOpen}, * {@link ILayoutProps.onPopoutClose}) and are also reachable from the model's layout map * (see {@link Model}). */ export declare class ModelLayout { private controller; constructor(layoutId: string, subLayoutId: number, type: ILayoutType, rect: Rect, json?: IJsonSubLayout); /** the path of this layout within the model, e.g. `/sublayout1` */ getPath(): string; /** visit every node in this layout's tree */ visitNodes(fn: (node: Node, level: number) => void): void; /** whether this is the main layout */ isMainLayout(): boolean; /** the id of this layout */ getLayoutId(): string; /** the type of this layout: `window`, `float` or `tab` */ getType(): ILayoutType; /** the name of this layout, e.g. as shown in the model explorer; undefined if not set */ getName(): string | undefined; /** the rectangle of this layout (popout windows/floating panels) */ getRect(): Rect; /** the browser window this layout is rendered in (the popout window for a popout layout) */ getWindow(): Window | undefined; }