import { ReactNode } from 'react'; /** * Table cell primitives. * Classification: custom * * The row anatomy of an AiStrike list view. A table's quality lives mostly * inside its cells, so these ship as components: reach for them from a column's * `Cell` renderer instead of assembling Box + Typography and picking colours by * hand. Every value here comes from a token. */ export interface TableTitleCellProps { /** The record's name. Truncates rather than wrapping. */ title: string; /** Supporting line under the title — a summary, a type, a path. Truncates. */ description?: string; /** Leading glyph, avatar or status icon. Keep it 24-28px. */ icon?: ReactNode; /** Small dim text beside the title, e.g. a version. */ meta?: string; /** Short uppercase tag beside the title, e.g. "Built-in". */ badge?: string; } /** * The identity of a row. Use it in the first column of every list view — it is * what makes a table scannable, and the single most-reinvented cell in the * product. */ export declare function TableTitleCell({ title, description, icon, meta, badge }: TableTitleCellProps): import("react").JSX.Element; export type TableStatusTone = 'active' | 'warning' | 'error' | 'info' | 'neutral'; export interface TableStatusCellProps { label: string; /** Which semantic hue the dot and label take. */ tone?: TableStatusTone; } /** * Lifecycle or health state, as a dot and a label. * * Use this for state (enabled, healthy, failing) and a `Chip` for facets * (tags, sources, severity). Mixing them makes a table read as noise. */ export declare function TableStatusCell({ label, tone }: TableStatusCellProps): import("react").JSX.Element; export interface TableMetricCellProps { /** The headline figure, already formatted (e.g. "8.9k"). */ value: ReactNode; /** Optional trend series drawn to the left of the value. */ trend?: readonly number[]; /** Accessible description of the trend. Required when `trend` is given. */ trendLabel?: string; /** Full-precision figure shown on hover. */ tooltip?: string; /** Dim the whole cell — for a zero or inactive measure. */ muted?: boolean; /** Right-align, the default for numbers in a column. */ align?: 'left' | 'right'; } /** A number that carries a trend. Uses tabular figures so columns line up. */ export declare function TableMetricCell({ value, trend, trendLabel, tooltip, muted, align, }: TableMetricCellProps): import("react").JSX.Element; export interface TableMetaCellProps { /** The fact — "10h ago", "Jun 27, 2026". */ primary: ReactNode; /** Who or what it belongs to — an actor, a source, an id. */ secondary?: ReactNode; } /** Incidental metadata on two lines: the fact, then whose it is. */ export declare function TableMetaCell({ primary, secondary }: TableMetaCellProps): import("react").JSX.Element; export interface TableChipsCellProps { items: readonly string[]; /** How many to show before collapsing the rest into a "+N". */ max?: number; /** Leading glyph repeated on every chip. */ icon?: ReactNode; } /** A set of facets that may overflow. Caps at `max` and counts the remainder. */ export declare function TableChipsCell({ items, max, icon }: TableChipsCellProps): import("react").JSX.Element; export interface TableActionsCellProps { /** IconButtons, usually. Keep it to three or fewer. */ children: ReactNode; /** * Fade the actions in on row hover. They stay reachable by keyboard, so this * hides visual noise without hiding function. */ revealOnHover?: boolean; } /** Right-aligned row actions. */ export declare function TableActionsCell({ children, revealOnHover }: TableActionsCellProps): import("react").JSX.Element;