import { IDataHook } from "model-react";
import { IUILayer } from "../_types/IUILayer";
import { IUILayerContentData } from "../_types/IUILayerContentData";
import { IUILayerData } from "./_types/IUILayerData";
import { IUILayerFieldData } from "../_types/IUILayerFieldData";
import { IUILayerMenuData } from "../_types/IUILayerMenuData";
import { AbstractUILayer } from "../AbstractUILayer";
import { IIOContext } from "../../context/_types/IIOContext";
/**
 * An abstract class that can be used as a foundation for a UILayer, where all ui components can be passed together
 */
export declare abstract class UnifiedAbstractUILayer extends AbstractUILayer implements IUILayer {
    /** @override */
    onOpen(context: IIOContext, close: () => void): Promise<() => Promise<void>>;
    /**
     * Retrieves all of the UIData and their precedence order (later = higher)
     * @param hook The data hook to subscribe to changes
     * @returns ALl the UI elements
     */
    abstract getAll(hook?: IDataHook): IUILayerData[];
    /**
     * Retrieves the menu data
     * @param hook The data hook to subscribe to changes
     * @returns The menu data of this layer
     */
    getMenuData(hook?: IDataHook): IUILayerMenuData[];
    /**
     * Retrieves the field data
     * @param hook The data hook to subscribe to changes
     * @returns The field data of this layer
     */
    getFieldData(hook?: IDataHook): IUILayerFieldData[];
    /**
     * Retrieves the content data
     * @param hook The data hook to subscribe to changes
     * @returns The content data of this layer
     */
    getContentData(hook?: IDataHook): IUILayerContentData[];
}
//# sourceMappingURL=UnifiedAbstractUILayer.d.ts.map