import { LayoutElement } from '../Abstracts/LayoutElement';
import type { IDockPanelElementProps } from './IDockPanelElementProps';
import { DockSide } from '../../../Types/DockSide';
declare const DockPanelElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Reversible").IReversibleProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Fitable").IFitableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Gapable").IGapableProps) & typeof LayoutElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * DockPanel - A layout component used to arrange child components by docking them to specific edges or filling the remaining space.
 *
 * @description
 * The DockPanel component is a powerful layout element that allows child components or elements to be docked
 * to the top, bottom, left, or right edges of the container, while optionally letting one element fill the
 * remaining available space. This makes it ideal for constructing flexible and adaptive interfaces such as
 * application shells, sidebars, headers, footers, and content regions.
 *
 * DockPanel layouts provide developers with fine-grained control over how elements are positioned relative
 * to each other, ensuring that UIs remain both structured and responsive without relying heavily on manual
 * CSS positioning.
 *
 * @element mosaik-dock-panel
 * @category Layout
 *
 * @slot - The default slot for child elements to be docked.
 *
 * @example
 * ```html
 * <mosaik-dock-panel>
 *   <div dock="top">Header</div>
 *   <div dock="left">Sidebar</div>
 *   <div dock="content">Main Content</div>
 *   <div dock="bottom">Footer</div>
 * </mosaik-dock-panel>
 * ```
 *
 * @public
 */
export declare class DockPanelElement extends DockPanelElement_base implements IDockPanelElementProps {
    private readonly _childResize;
    private _lastChildFill;
    private _hostResize?;
    private _pending;
    /**
     * Constructs a new instance of the `{@link DockPanelElement}` class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @override
     * @readonly
    */
    static get is(): string;
    /**
     * The `lastChildFill` property determines whether the last child element should fill the remaining space.
     *
     * @public
     * @attr
     */
    get lastChildFill(): boolean;
    set lastChildFill(value: boolean);
    static getDock(el: HTMLElement): DockSide;
    static setDock(el: Element, dock: DockSide): void;
    /**
     * @public
     * @override
     */
    disconnectedCallback(): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @protected
     * @override
     */
    protected onItemsChanged(): void;
    /**
     * @private
     */
    private reobserveChildren;
    /**
     * @private
     */
    private cleanupObservers;
    /**
     * @private
     */
    private scheduleLayout;
    /**
     * @private
     */
    private layoutNow;
    /**
     * @private
     */
    private resolveCssLengthToPx;
    /**
     * @private
     */
    private isVisible;
    /**
     * @private
     */
    private prepForMeasure;
    /**
     * @private
     */
    private place;
}
/** @public */
export declare namespace DockPanelElement {
    type Props = IDockPanelElementProps;
}
/** @public */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-dock-panel': DockPanelElement;
    }
}
export {};
//# sourceMappingURL=DockPanelElement.d.ts.map