import { IClassOf } from "../../core/types";
import XNode from "../../core/XNode";
import { AtomControl } from "./AtomControl";
import { AtomTemplate } from "./AtomTemplate";
export declare function getTemplateParent(e: HTMLElement): any;
export declare class AtomWindowFrameTemplate extends AtomTemplate {
    get templateParent(): AtomWindow;
    commandPresenter: HTMLElement;
    titlePresenter: HTMLElement;
    protected preCreate(): void;
    protected create(): void;
}
export declare class AtomWindow extends AtomControl {
    static windowTemplate: (attributes: Partial<unknown>, ...nodes: XNode[]) => XNode;
    static commandTemplate: (attributes: Partial<unknown>, ...nodes: XNode[]) => XNode;
    static titleTemplate: (attributes: Partial<unknown>, ...nodes: XNode[]) => XNode;
    static frameTemplate: (attributes: Partial<unknown>, ...nodes: XNode[]) => XNode;
    get templateParent(): any;
    title: string;
    width: string;
    height: string;
    x: number;
    y: number;
    windowTemplate: IClassOf<AtomControl>;
    commandTemplate: IClassOf<AtomControl>;
    titleTemplate: IClassOf<AtomControl>;
    frameTemplate: IClassOf<AtomWindowFrameTemplate>;
    private isReady;
    onPropertyChanged(name: string): void;
    close(): void;
    onUpdateUI(): void;
    protected preCreate(): void;
    private centerFrame;
    private setupDragging;
}
//# sourceMappingURL=AtomWindow.d.ts.map