import { LayoutElement } from '../Abstracts/LayoutElement';
import type { IWrapElementProps } from './IWrapElementProps';
declare const WrapElement_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;
/**
 * Wrap - A flexible layout container that automatically wraps child elements to new lines based on available space.
 *
 * @description
 * The Wrap layout component provides a flexible container that automatically wraps child elements to new lines
 * when there's insufficient horizontal space, creating responsive and adaptive layouts. It combines the benefits
 * of flexbox wrapping with configurable gap spacing, orientation control, and reversal options. The component
 * handles dynamic content sizing, maintains consistent spacing between elements, supports both horizontal and
 * vertical orientations, and provides responsive behavior without media queries. Child elements flow naturally
 * within the container, wrapping to new lines as needed. Perfect for tag collections, button groups, card grids,
 * navigation elements, and any interface requiring flexible, space-aware element arrangement.
 *
 * @name Wrap
 * @element mosaik-wrap
 * @category Layouts
 *
 * @slot - The default slot for elements that will wrap based on available space.
 *
 * @cssprop {String} --wrap-gap - The gap between wrapped elements.
 * @cssprop {String} --wrap-columns - The preferred number of columns (if applicable).
 *
 * @example
 * ```html
 * <mosaik-wrap gap="12px">
 *   <mosaik-button>Action 1</mosaik-button>
 *   <mosaik-button>Action 2</mosaik-button>
 *   <mosaik-button>Very Long Action Name</mosaik-button>
 *   <mosaik-button>Action 4</mosaik-button>
 * </mosaik-wrap>
 * ```
 *
 * @example
 * ```html
 * <mosaik-wrap gap="16px" orientation="vertical">
 *   <mosaik-chip>Tag 1</mosaik-chip>
 *   <mosaik-chip>Tag 2</mosaik-chip>
 *   <mosaik-chip>Long Tag Name</mosaik-chip>
 * </mosaik-wrap>
 * ```
 *
 * @public
 */
export declare class WrapElement extends WrapElement_base implements IWrapElementProps {
    private _columns;
    private readonly _reverse;
    /**
     * Constructs a new instance of the `WrapElement` class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @override
     * @readonly
    */
    static get is(): string;
    /**
     * The `columns` property represents the number of columns before wrapping.
     *
     * @public
     */
    get columns(): number;
    set columns(value: number);
    /**
     * @protected
     * @override
     */
    protected onItemsChanged(): void;
    /**
     * @protected
     */
    protected onGapChanged(): void;
    /**
     * @protected
     */
    protected onColumnsChanged(): void;
    /**
     * @private
     */
    private renderChild;
}
/**
 * @public
 */
export declare namespace WrapElement {
    type Props = IWrapElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-wrap': WrapElement;
    }
}
export {};
//# sourceMappingURL=WrapElement.d.ts.map