import type { HTMLAttributes, ReactNode, ElementType } from 'react';
import type { SpaceToken } from './tokens.js';
/**
 * Responsive column count. Pass a number for static grids, or a map to
 * change column count at each breakpoint.
 *
 * @example
 *   columns={3}                              // 3 cols at every breakpoint
 *   columns={{ base: 1, md: 2, lg: 4 }}      // responsive
 */
export type GridResponsive = number | {
    base?: number;
    sm?: number;
    md?: number;
    lg?: number;
    xl?: number;
    '2xl'?: number;
};
export interface GridProps extends HTMLAttributes<HTMLElement> {
    columns: GridResponsive;
    /** Gap between cells. */
    space?: SpaceToken;
    /** Row gap (defaults to `space`). */
    rowSpace?: SpaceToken;
    /** Render as a different element. Defaults to `div`. */
    as?: ElementType;
    /**
     * Use auto-fit instead of explicit column counts. When set, `minItemWidth`
     * controls the minimum tile width before the grid reflows. Use this for
     * card grids that should adapt to container width without specific
     * breakpoints.
     */
    autoFit?: boolean;
    /** Min tile width when `autoFit` is true. Defaults to `16rem`. */
    minItemWidth?: string;
    children?: ReactNode;
}
/**
 * Responsive CSS grid primitive. Pass either an explicit `columns` count
 * (per-breakpoint or static) or set `autoFit` for a `repeat(auto-fit, …)`
 * tile grid. Both modes share the same `space` / `rowSpace` knobs so
 * usage is consistent across views.
 */
export declare function Grid({ columns, space, rowSpace, as: Component, autoFit, minItemWidth, className, style, children, ...rest }: GridProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Grid.d.ts.map