import { type ComponentPropsWithoutRef, type ReactNode } from "react";
export type StatusTileStatus = "success" | "failed" | "running" | "pending" | "skipped" | "idle";
export interface StatusTile {
    /** Stable id used for keying + click callbacks. */
    id: string;
    status: StatusTileStatus;
    /** Optional tooltip text. */
    label?: ReactNode;
    /** Color override (wins over the status default). */
    color?: string;
}
export interface StatusTilesProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "onChange"> {
    data: StatusTile[];
    /** Tile pixel width. Default 10. */
    tileWidth?: number;
    /** Tile pixel height. Default 16. */
    tileHeight?: number;
    /** Gap between tiles in px. Default 2. */
    gap?: number;
    /** Tile corner radius (CSS length). Default `var(--ods-radius-1)`. */
    radius?: string;
    /**
     * Max tiles to render. When `data` is longer than this, the OLDEST
     * tiles are dropped so the most-recent runs stay visible (canonical
     * "last N runs" behaviour). Default Infinity (render all).
     */
    max?: number;
    /** Suppress the mount stagger-fade animation. */
    disableAnimation?: boolean;
    title?: ReactNode;
    /** Right-aligned summary text. */
    summary?: ReactNode;
    /** Accessible label — auto-generated when omitted. */
    "aria-label"?: string;
    onTileHover?: (tile: StatusTile | null, index: number | null) => void;
    onTileClick?: (tile: StatusTile, index: number) => void;
}
export declare const StatusTiles: import("react").ForwardRefExoticComponent<StatusTilesProps & import("react").RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=StatusTiles.d.ts.map