import { type IGapableProps } from '../../../Behaviors/Gapable';
import { DockSide } from '../../../Types/DockSide';
import { LayoutElement } from '../Abstracts/LayoutElement';
import type { IDockPanelElementProps } from './IDockPanelElementProps';
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>) => IGapableProps) & typeof LayoutElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Dock Panel - A flexible layout container for docking child elements to specific edges with fill capability.
 *
 * @description
 * The Dock Panel component provides a powerful layout system where child elements can be docked to specific
 * edges (top, bottom, left, right) of the container, with one element optionally filling the remaining space.
 * This creates flexible, adaptive layouts perfect for application shells, dashboards, and structured interfaces.
 * The component handles automatic space distribution, supports gap spacing between docked elements, respects
 * orientation and reversal settings, and provides responsive behavior. Child elements use dock attributes
 * to specify their positioning preference, while the panel manages the overall layout flow and space allocation.
 * Essential for creating professional application layouts with headers, sidebars, content areas, and footers.
 *
 * @name Dock Panel
 * @element mosaik-dock-panel
 * @category Layouts
 *
 * @slot - The default slot for child elements with dock positioning attributes.
 *
 * @csspart surface - The main container surface for docked elements.
 *
 * @example
 * ```html
 * <mosaik-dock-panel>
 *   <header dock="top">Application Header</header>
 *   <nav dock="left">Navigation Sidebar</nav>
 *   <footer dock="bottom">Application Footer</footer>
 *   <main dock="fill">Main Content Area</main>
 * </mosaik-dock-panel>
 * ```
 *
 * @example
 * ```html
 * <mosaik-dock-panel gap="16px" orientation="vertical">
 *   <div dock="start">Start Panel</div>
 *   <div dock="end">End Panel</div>
 *   <div dock="fill">Center Content</div>
 * </mosaik-dock-panel>
 * ```
 *
 * @public
 */
export declare class DockPanelElement extends DockPanelElement_base implements IDockPanelElementProps {
    private readonly _inlineStyleController;
    private readonly _childResize;
    private _lastChildFill;
    private _hostResize?;
    private _pending;
    /**
     * Constructs a new instance of the `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);
    /**
     * @public
     * @override
     */
    get gap(): IGapableProps['gap'];
    set gap(value: IGapableProps['gap']);
    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