import type { OrdinalSceneNode, OrdinalLayout } from "../ordinalTypes";
import type { OrdinalSceneContext } from "./types";
/**
 * Funnel scene builder.
 *
 * Steps run top-to-bottom. Each step is a horizontal row whose bar width is
 * proportional to its value. Multiple categories mirror around the center axis:
 * with 2 categories, one extends right and the other extends left.
 *
 * Produces:
 *  - RectSceneNode for each bar (step × category)
 *  - TrapezoidSceneNode for each connector between consecutive steps
 *
 * Label metadata on each rect datum (used by funnelLabelRenderer):
 *  - __funnelStepLabel: step name (only on first category rect per row)
 *  - __funnelValue: numeric value for this bar
 *  - __funnelPercent: percent of this category's first-step value
 *  - __funnelIsFirstStep: true for step index 0 (suppresses "100%")
 *  - __funnelStepLabelX/Y: center position for step name
 *  - __funnelValueLabelX/Y: center position for value label
 *  - __funnelBarW: pixel width of this bar (for min-size suppression)
 *
 * NOTE: FunnelChart HOC uses projection="horizontal" so the ordinal band
 * scale maps to layout.height (y-axis). col.x = y-position, col.width = band height.
 */
export declare function buildFunnelScene(ctx: OrdinalSceneContext, layout: OrdinalLayout): OrdinalSceneNode[];
