import { type LayoutStyle } from "../../style/index.js"; import { type ChartSkin } from "../shared/types.js"; import { type StackedSegment } from "../shared/types.js"; export interface FunnelChartProps { /** Ordered stages, widest first. */ stages: StackedSegment[]; /** Optional heading shown above the funnel. */ title?: string; /** Show each stage as a share of the FIRST stage instead of the conversion * from the previous stage. */ share?: boolean; /** Draw connected stage trapezoids and show counts alongside stage conversion. */ tapered?: boolean; compact?: boolean; /** Strip the card surface for nesting inside an existing card (mirrors Stats). */ plain?: boolean; /** Formats stage values (data formatting, not styling). */ formatValue?: (v: number) => string; /** Press-to-inspect: the selected stage index (controlled). Pass null for none. */ selected?: number | null; /** Press-to-inspect: the initially selected stage (uncontrolled). */ defaultSelected?: number; /** Fired when a press selects a stage (or clears it with null). */ onSelect?: (index: number | null) => void; /** 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 createFunnelChart(skin: ChartSkin): (props: FunnelChartProps) => import("react").JSX.Element; /** A centered stage that tapers from its own share to the following stage's share. */ export declare function funnelTrapezoid(width: number, height: number, from: number, to: number): string; //# sourceMappingURL=funnel-chart.shared.d.ts.map