import { CssLength } from '@breadstone/mosaik-themes';
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) & typeof LayoutElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Wrap - A layout component that wraps its child elements to create a responsive and flexible layout.
 *
 * @description
 * The Wrap component is a layout element designed to wrap its child components or elements to create a responsive and
 * flexible layout. It is commonly used for arranging elements in a grid-like format where items flow to the next row or
 * column when there's not enough space horizontally.
 *
 * @element mosaik-wrap
 * @category Layout
 *
 * @example
 * ```html
 * <mosaik-wrap>
 *   <div>Item 1</div>
 *   <div>Item 2</div>
 *   <!-- Add more child elements as needed -->
 * </mosaik-wrap>
 * ```
 *
 * @public
 */
export declare class WrapElement extends WrapElement_base implements IWrapElementProps {
    private _gap;
    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 `gap` represents the space between the child elements.
     *
     * @public
     * @type CssLength
     */
    get gap(): CssLength;
    set gap(value: CssLength);
    /**
     * 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