/** Shimmer bar height (px) used across list table skeletons */ export declare const LIST_TABLE_LOADER_HEIGHT_PX = 14; /** Alternating bar widths: wide first cell, uniform rest */ export declare function getAlternatingRowWidths(columnCount: number): { widthsA: number[]; widthsB: number[]; }; /** Bar widths for one skeleton row (matches `ListTableSkeleton` row parity). */ export declare function getListTableRowBarWidths(columnCount: number, rowIndex: number): number[]; export type ListTableSkeletonRowVariant = "desktop" | "small"; export type ListTableSkeletonRowProps = { colPcts: readonly number[]; rowIndex: number; variant: ListTableSkeletonRowVariant; }; /** * Single row primitive used by `ListTableSkeleton` and by any caller that * needs to inject a placeholder row into an already-populated table (e.g. * an AI-CFO-triggered bulk create that has not yet resolved). Row markup, * bar widths, and parity logic are owned here so the full-table skeleton * and ad-hoc injected rows can never visually drift apart. */ export declare function ListTableSkeletonRow({ colPcts, rowIndex, variant, }: ListTableSkeletonRowProps): JSX.Element; export type ListTableSkeletonProps = { colPcts: readonly number[]; rowCount?: number; /** When provided, `small` window size uses these column percentages */ smallColPcts?: readonly number[]; }; /** * Generic table-style skeleton: header row + N data rows. * First column is left-aligned, rest are right-aligned. * Alternates loader widths between rows for visual variety. */ export declare function ListTableSkeleton({ colPcts, rowCount, smallColPcts, }: ListTableSkeletonProps): JSX.Element;