import { HorizontalAlignment } from '../../../Types/HorizontalAlignment';
import { VerticalAlignment } from '../../../Types/VerticalAlignment';
import { LayoutElement } from '../Abstracts/LayoutElement';
import { ColumnDefinitions } from './ColumnDefinitions';
import { IGridElementProps } from './IGridElementProps';
import type { IGridLayoutGap } from './IGridLayoutGapSettings';
import { RowDefinitions } from './RowDefinitions';
declare const GridElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & typeof LayoutElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Grid - A layout system that arranges elements in a structured grid pattern.
 *
 * @element mosaik-grid
 *
 * @slot - The default slot.
 *
 * @public
 */
export declare class GridElement extends GridElement_base implements IGridElementProps {
    private _rowDefinitions;
    private _columnDefinitions;
    private _gap;
    private _horizontalAlignment;
    private _verticalAlignment;
    /**
     * Constructs a new instance of the `GridElement` class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @override
     * @readonly
    */
    static get is(): string;
    /**
     * Gets or sets the `rowDefinitions` property.
     * Specifies the number of rows and their height
     *
     * Accepts an array, which serves two purposes:
     *
     * The number of elements in the array defines the number of rows.
     * Each array element defines the size of the corresponding row. The possible array values are:
     * * `number` - Defines the size in pixels.
     * * `string` - Enables the usage of arbitrary units e.g. `20%` or `auto`.
     * * `IRowDefinition` - Configuration object, which accepts a `height` key.
     *
     * @public
     */
    get rowDefinitions(): RowDefinitions;
    set rowDefinitions(value: RowDefinitions);
    /**
     * Gets or sets the `columnDefinitions` property.
     * Specifies the number of columns and their widths
     *
     * Accepts an array, which serves two purposes:
     *
     * The number of elements in the array defines the number of columns.
     * Each array element defines the size of the corresponding column. The possible array values are:
     * * `number` - Defines the size in pixels.
     * * `string` - Enables the usage of arbitrary units e.g. `20%` or `auto`.
     * * `IColumnDefinition` - Configuration object, which accepts a `width` key.
     *
     * @public
     */
    get columnDefinitions(): ColumnDefinitions;
    set columnDefinitions(value: ColumnDefinitions);
    /**
     * Gets or sets the `gap` property.
     * Specifies the gaps between the elements. The default value is `0`
     *
     * @public
     */
    get gap(): string | number | IGridLayoutGap;
    set gap(value: string | number | IGridLayoutGap);
    /**
     * Gets or sets the `horizontalAlignment` property.
     *
     * @public
     * @attr
     */
    get horizontalAlignment(): HorizontalAlignment;
    set horizontalAlignment(value: HorizontalAlignment);
    /**
     * Gets or sets the `verticalAlignment` property.
     *
     * @public
     * @attr
     */
    get verticalAlignment(): VerticalAlignment;
    set verticalAlignment(value: VerticalAlignment);
    /**
     * @private
     */
    private generateGapStyle;
    /**
     * @private
     */
    private generateColumnStyle;
    /**
     * @private
     */
    private generateRowStyle;
}
/**
 * @public
 */
export declare namespace GridElement {
    type Props = IGridElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-grid': GridElement;
    }
}
export {};
//# sourceMappingURL=GridElement.d.ts.map