import { type ColorTokens } from "../../style/index.js"; import { type Tone } from "./charts.styles.js"; export interface BreakdownRow { /** Stable identity, used as the React key when the rows can reorder. */ id?: string | number; /** The category name. Truncates to one line. */ label: string; /** The category's magnitude. Sizes the row's bar. */ value: number; /** Preformatted change indicator (e.g. "+4.2%"). Omit to hide. */ delta?: string; /** Color the delta red (a decline) instead of the default green (a rise). */ down?: boolean; /** Render the delta muted, for a qualifier that is not a change claim * ("last 30 days"). Takes precedence over `down`, matching Stats. */ steady?: boolean; chart1?: boolean; chart2?: boolean; chart3?: boolean; chart4?: boolean; chart5?: boolean; chart6?: boolean; chart7?: boolean; chart8?: boolean; } /** True when any per-row color slot is set (the consumers' tone-conflict warn). */ export declare function hasSlot(row: BreakdownRow): boolean; /** * A row's fill: its own chart slot first, then the component-level tone, then * the categorical ramp by index (identity follows the row, never its rank). */ export declare function rowFill(tokens: ColorTokens, row: BreakdownRow, i: number, tone: Tone | null): string; /** * The accessible name for one row: label, formatted value, the share percent * when the bar encodes one (the bar is the share's only visual carrier), and * the delta with its direction spelled out ("up"/"down"; a steady delta is a * qualifier, not a change claim, so it reads verbatim). Pure, exported for * tests. */ export declare function rowAccessibleLabel(row: BreakdownRow, sharePct: number | null, fmt: (v: number) => string): string; export interface BreakdownRowsProps { rows: BreakdownRow[]; /** Size bars against the sum of rows (composition) instead of the largest row (ranking). */ share: boolean; /** Append a muted percent readout after each value (BarList's share mode). */ percent?: boolean; /** Component-level tone; null paints the ramp by index. A row's slot beats both. */ tone: Tone | null; compact?: boolean; formatValue: (v: number) => string; /** Rows become buttons (drill into the category) when set. */ onPressRow?: (index: number) => void; } /** The shared renderer. Each row is one accessible item; the bar is decorative. */ export declare function BreakdownRows({ rows, share, percent, tone, compact, formatValue, onPressRow }: BreakdownRowsProps): import("react").JSX.Element; //# sourceMappingURL=breakdown-rows.d.ts.map