import { CustomElement } from '../../Abstracts/CustomElement';
import type { IGridItemElementProps } from './IGridItemElementProps';
declare const GridItemElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Grid Item - An element within a grid layout, organized in rows and columns.
 *
 * @description
 * The Grid Item component is placed inside a `GridElement`
 * and defines its position and span within the grid via the `column`, `row`, `column-span`, and `row-span` attributes.
 *
 * Positions are 1-based. A value of `0` means auto-placement.
 * Positions and spans that exceed the parent grid's explicit track
 * definitions are clamped to `auto` to prevent implicit track creation.
 *
 * @name Grid Item
 * @element mosaik-grid-item
 * @category Layout
 *
 * @slot - The default slot.
 *
 * @example
 * Item spanning two columns in a content layout:
 * ```html
 * <mosaik-grid column-definitions="* * *" row-definitions="auto auto" gap="16">
 *   <mosaik-grid-item column="1" row="1" column-span="2">Wide Content</mosaik-grid-item>
 *   <mosaik-grid-item column="3" row="1">Aside</mosaik-grid-item>
 *   <mosaik-grid-item column="1" row="2" column-span="3">Full-Width Footer</mosaik-grid-item>
 * </mosaik-grid>
 * ```
 *
 * @public
 */
export declare class GridItemElement extends GridItemElement_base implements IGridItemElementProps {
    private _column;
    private _columnSpan;
    private _row;
    private _rowSpan;
    /**
     * Constructs a new instance of the `GridItemElement` class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
    */
    static get is(): string;
    /**
     * Gets or sets the `column` property.
     *
     * @public
     * @attr column
     */
    get column(): number;
    set column(value: number);
    /**
     * Gets or sets the `columnSpan` property.
     *
     * @public
     * @attr column-span
     */
    get columnSpan(): number;
    set columnSpan(value: number);
    /**
     * Gets or sets the `row` property.
     *
     * @public
     * @attr row
     */
    get row(): number;
    set row(value: number);
    /**
     * Gets or sets the `rowSpan` property.
     *
     * @public
     * @attr row-span
     */
    get rowSpan(): number;
    set rowSpan(value: number);
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    /**
     * Re-evaluates and applies the CSS `grid-area` placement of this item.
     *
     * Called by the parent `GridElement` when `columnDefinitions` or
     * `rowDefinitions` change so that out-of-bounds positions are clamped
     * to `auto`, preventing CSS Grid from creating implicit tracks.
     *
     * @public
     */
    invalidatePosition(): void;
    /**
     * @protected
     */
    protected onRowPropertyChanged(): void;
    /**
     * @protected
     */
    protected onColumnPropertyChanged(): void;
    /**
     * @protected
     */
    protected onRowSpanPropertyChanged(): void;
    /**
     * @protected
     */
    protected onColumnSpanPropertyChanged(): void;
    /**
     * Computes and applies the CSS `grid-area` style based on the configured
     * row/column positions and spans, clamped against the parent grid's
     * explicit track definitions.
     *
     * @private
     */
    private setItemStyle;
    /**
     * Resolves a 1-based track position against the available track count.
     * Returns `'auto'` when the position is unset (`0`) or exceeds the
     * explicit grid tracks defined by the parent.
     *
     * @param position - The 1-based track position (`0` = unset).
     * @param maxTracks - Number of explicitly defined tracks (`0` = unconstrained).
     * @returns The position value or `'auto'`.
     *
     * @private
     */
    private resolvePosition;
    /**
     * Resolves a track span against the available grid space.
     * When the resolved position is `'auto'` (out of bounds or unset), the span is
     * clamped to `maxTracks` to prevent implicit track creation.
     * When the position is in bounds, the span is clamped so the item does not
     * extend beyond the explicit grid.
     *
     * @param span - Requested span count (`0` = no span).
     * @param resolvedPosition - Already-resolved position (`number` or `'auto'`).
     * @param maxTracks - Number of explicitly defined tracks (`0` = unconstrained).
     * @returns A CSS span value string (e.g. `'span 2'`) or `'auto'`.
     *
     * @private
     */
    private resolveSpan;
    /**
     * Reads the number of explicitly defined tracks from the parent grid element.
     * Uses duck-typing (`property in parent`) so that `GridItemElement` does not
     * import `GridElement`, avoiding any risk of circular module dependencies.
     *
     * @param property - The parent property name (`'columnDefinitions'` or `'rowDefinitions'`).
     * @returns The number of explicit track definitions, or `0` when unconstrained.
     *
     * @private
     */
    private getParentTrackCount;
}
/**
 * @public
 */
export declare namespace GridItemElement {
    type Props = IGridItemElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-grid-item': GridItemElement;
    }
}
export {};
//# sourceMappingURL=GridItemElement.d.ts.map