import { VNode } from 'snabbdom/vnode'; import { Type, ProviderArg } from './di'; import { Layout } from './layout'; import { ViewManager } from './view'; import { Renderer, Renderable, ConfiguredRenderable, RenderableConfig } from './dom'; import { RenderableArg, ContextType } from './common'; import { UgPlugin } from './UgPlugin'; import { LockState } from './LockState'; export interface RootLayoutConfig extends RenderableConfig { use: RenderableArg; } export interface RootLayoutCreationConfig { container: HTMLElement; plugins: UgPlugin[]; providers: ProviderArg[]; getContainerDimensions: (() => { x: number; y: number; width: number; height: number; }) | null; } export interface RootLayoutCreationConfigArgs { container?: HTMLElement; plugins?: UgPlugin[]; providers?: ProviderArg[]; interceptors?: ProviderArg[]; detachUrl?: string; getContainerDimensions?: (() => { x: number; y: number; width: number; height: number; }) | null; } export declare class RootLayout extends Renderable { protected _height: number; protected _width: number; protected _vnode: VNode; protected _isInitialized: boolean; protected _lastVNode: VNode | null; protected _offsetX: number; protected _offsetY: number; protected _config: RootLayoutConfig; protected _renderer: Renderer; protected _containerEl: HTMLElement; protected _viewManager: ViewManager; protected _rootConfig: RootLayoutCreationConfig; protected _lockState: LockState; protected _window: Window; readonly height: number; readonly width: number; readonly isInitialized: boolean; readonly containerEl: Node | null; readonly offsetX: number; readonly offsetY: number; readonly lockState: LockState; makeVisible(): void; render(): VNode; resize(dimensionsOrNone?: { height: number; width: number; x: number; y: number; }): void; update(): void; initialize(): void; load(config: ConfiguredRenderable | RootLayoutConfig, options?: { context?: ContextType; }): void; reset(context?: ContextType): void; setContainingNode(node: Node): void; detach(): void; destroy(): void; isVisible(): boolean; getPlugins(type?: Type): T[]; getActiveWindow(): Window | null; static create(config?: RootLayoutCreationConfigArgs): T; static configure(config: RootLayoutConfig): ConfiguredRenderable; }