import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType, Visible2DAtomType, deepPartial, CoordType } from '../../../common/data-type';
import { WindowType, WindowEntityAtomType, IGenerate } from '../../../common/interface/window';
import { ObjectController } from '../../../common/object-controller';
/**
 * @public
 * @class Window
 * @extends ObjectController
 * @implements ObjectAbstract
 */
declare class Window extends ObjectController implements ObjectAbstract {
    className: string;
    private WindowEntityAtom;
    private TransformAtom2D;
    private Visible2DAtom;
    /**
     * @constructor
     * @param {WindowType} opt (optional)
     */
    constructor(opt?: WindowType);
    get location(): CoordType;
    set location(location: CoordType);
    get overlapOrder(): number;
    set overlapOrder(overlapOrder: number);
    get hideDistance(): number;
    set hideDistance(hideDistance: number);
    get hideType(): string;
    set hideType(hideType: string);
    get scaleMode(): string;
    set scaleMode(scaleMode: string);
    get clickTop(): boolean;
    set clickTop(clickTop: boolean);
    get hoverTop(): boolean;
    set hoverTop(hoverTop: boolean);
    GetLocation(): Promise<ResultType>;
    SetLocation(location: CoordType): Promise<ResultType>;
    GetOverlapOrder(): Promise<ResultType>;
    SetOverlapOrder(overlapOrder: number): Promise<ResultType>;
    GetHideDistance(): Promise<ResultType>;
    SetHideDistance(hideDistance: number): Promise<ResultType>;
    GetHideType(): Promise<ResultType>;
    SetHideType(hideType: string): Promise<ResultType>;
    GetScaleMode(): Promise<ResultType>;
    SetScaleMode(scaleMode: string): Promise<ResultType>;
    GetClickTop(): Promise<ResultType>;
    SetClickTop(clickTop: boolean): Promise<ResultType>;
    GetHoverTop(): Promise<ResultType>;
    SetHoverTop(hoverTop: boolean): Promise<ResultType>;
    /**
     * @public
     * @function GetVisible2DScheme
     * @returns {{Visible2DAtom: Visible2DAtomType}}
     */
    GetVisible2DScheme(): {
        Visible2DAtom: Visible2DAtomType;
    };
    /**
     * @public
     * @function GetScheme
     * @returns {{WindowEntityAtom: WindowEntityAtomType}}
     */
    GetScheme(): {
        WindowEntityAtom: WindowEntityAtomType;
    };
    /**
     * @private
     * @function getTransform2DEntityData
     * @returns {TransformAtom2DType}
     */
    private getTransform2DEntityData;
    /**
     * @private
     * @function setTransform2DEntityData
     * @param {Partial<TransformAtom2DType>} opt
     * @returns {void}
     */
    private setTransform2DEntityData;
    /**
     * @public
     * @async
     * @function SetVisible2D
     * @param {deepPartial<Visible2DAtomType>} opt
     * @returns {Promise<ResultType>}
     */
    SetVisible2D(opt: deepPartial<Visible2DAtomType>): Promise<ResultType>;
    /**
     * @private
     * @async
     * @function handleVisible2DAction
     * @param {deepPartial<Visible2DAtomType>} opt
     * @returns {Promise<ResultType>}
     */
    private handleVisible2DAction;
    /**
     * @private
     * @function GetVisible2DData
     * @returns {Partial<Visible2DAtomType>}
     */
    private GetVisible2DData;
    /**
     * @private
     * @function SetVisible2DData
     * @param {deepPartial<Visible2DAtomType>} opt
     * @returns {void}
     */
    private SetVisible2DData;
    /**
     * @public
     * @function GetData
     * @returns {WindowType}
     */
    GetData(): WindowType;
    /**
     * @public
     * @function SetData
     * @param {WindowType} opt
     * @returns {void}
     */
    SetData(opt: WindowType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {WindowType} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: WindowType): IGenerate;
    /**
     * @public
     * @function GetValidateRules
     * @returns {WindowType}
     */
    GetValidateRules(): WindowType;
    /**
     * @public
     * @function Validate
     * @param {WindowType} opt
     * @returns {void}
     */
    Validate(opt: WindowType): void;
    /**
     * @private
     * @function validateVisible2D
     * @param {deepPartial<Visible2DAtomType>} visible2D
     * @returns {void}
     */
    private validateVisible2D;
}
export default Window;
