import { type ColorTokens, type LayoutStyle } from "../../style/index.js"; import { type Tone } from "../shared/charts.styles.js"; import { type ChartSkin } from "../shared/types.js"; export interface BulletDatum { /** Stable identity, used as the React key when present. */ id?: string | number; /** The row label (e.g. "Revenue"). */ label: string; /** The measured value; sizes the bar. */ value: number; /** Optional per-row formatter for charts whose goal rows use different units. */ formatValue?: (value: number) => string; /** The goal, drawn as a vertical tick over the track. */ target?: number; /** Ascending qualitative band bounds (e.g. [150, 250, 350]); each band * paints a fading muted wash behind the measure. */ ranges?: number[]; /** * This row's own tone, colouring its measure and its value: a row whose result means * something (a target met). Pick one; first match wins: success > warning > destructive. * Omit for the chart's tone. */ success?: boolean; /** This row's warning tone (a target at risk); see `success` for the precedence. */ warning?: boolean; /** This row's destructive tone (a target missed); see `success` for the precedence. */ destructive?: boolean; } /** * A row's measure fill and value ink: its own tone first (the solid status colour on the * bar, the status text ink on the value), else the chart's fill under the card ink. */ export declare function rowTone(tokens: ColorTokens, d: BulletDatum, chartFill: string): { fill: string; ink: string; }; export interface BulletChartProps { /** The rows to render, in order, each on its own scale. */ data: BulletDatum[]; /** Optional heading shown above the rows. */ title?: string; /** Force one scale maximum shared by every row (only when the rows share a * unit). Omit for the default per-row scale: each row's largest value, * target, or range bound. */ max?: number; success?: boolean; destructive?: boolean; compact?: boolean; /** Expanded goal rows with inset markers and a qualitative-band key. */ detailed?: boolean; /** Strip the card surface for nesting inside an existing card (mirrors Stats). */ plain?: boolean; /** Formats row values (data formatting, not styling). */ formatValue?: (v: number) => string; /** E2E hook forwarded to the root element. */ testID?: string; /** Composition within a parent only, never a restyle hook and never a width: the parent layout container provides the bounds. */ style?: LayoutStyle; } export declare function toneOf(p: BulletChartProps): Tone; export declare function createBulletChart(skin: ChartSkin): (props: BulletChartProps) => import("react").JSX.Element; //# sourceMappingURL=bullet-chart.shared.d.ts.map