import { type ReactNode } from 'react'; export interface NavGridItem { /** Stable, opaque id. Emitted as `data-nav-item-id`; agents target it. */ id: string; /** Localised tile label — supplied by the consumer (never bundled here). */ label: string; /** Optional localised supporting text shown under the label. */ description?: string; /** Decorative leading glyph. Rendered `aria-hidden`. */ icon?: ReactNode; /** When set, the tile is a navigating anchor (kit Link). */ href?: string; /** When `href` is absent, the tile is a button firing this handler. */ onSelect?: () => void; /** Render the tile non-interactive and visually muted. */ disabled?: boolean; } /** Agent-readiness curated handle for NavGrid. */ export interface NavGridHandle { getItemCount: () => number; /** Activate the tile with the given id (navigate, or fire its onSelect). */ openItem: (id: string) => void; } export interface NavGridProps { /** Tiles to render. label / description / icon are consumer-supplied props. */ items: NavGridItem[]; /** REQUIRED — the nav landmark's accessible name (e.g. "Settings sections"). */ ariaLabel: string; /** Column count. Omit for the responsive default (1 → 2 → 3 at sm / lg). */ columns?: 1 | 2 | 3 | 4; /** `label` sorts tiles by `label.localeCompare`; `none` (default) preserves order. */ sort?: 'label' | 'none'; id?: string; className?: string; } declare const tileVariants: (props?: ({ disabled?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export declare const NavGrid: import("react").ForwardRefExoticComponent>; export { tileVariants as navGridTileVariants }; //# sourceMappingURL=nav-grid.d.ts.map