import { ReactElement } from 'react'; import { HelpId } from './help.js'; type Tone = 'neg' | 'pos' | 'warn' | 'muted' | 'brand' | string; export interface ForestRow { label: string; note?: string; est: number; lo: number; hi: number; tone: Tone; } export interface ForestPlotProps { rows: ForestRow[]; min: number; max: number; unit?: string; height?: number; /** Optional per-row help id, aligned to `rows` — renders a `.hlp` glyph * after the row label, opening that glossary entry. */ rowHelp?: HelpId[]; } /** Horizontal CI estimates with a dashed zero ("no effect") reference. */ export declare function ForestPlot({ rows, min, max, unit, height, rowHelp }: ForestPlotProps): ReactElement; export interface AreaMark { at: number; label: string; tone: Tone; /** Optional glossary id — renders a `.hlp` glyph after the marker label. */ help?: HelpId; } export interface AreaRangeProps { lo: number[]; mid: number[]; hi: number[]; xTicks?: string[]; yTicks?: string[]; zero?: number; tone?: Tone; marks?: AreaMark[]; height?: number; /** Y-axis label format: `signed` (default, e.g. `+5.2`) or `percent` (`80%`). */ yFormat?: 'signed' | 'percent'; } /** Low-high CI ribbon + mid line with hairline axes, optional zero + markers. */ export declare function AreaRange({ lo, mid, hi, xTicks, yTicks, zero, tone: toneName, marks, height, yFormat }: AreaRangeProps): ReactElement; export interface OverlapHistogramProps { /** Treated-arm propensity histogram (one count/fraction per bin over [0,1]). */ treated: number[]; /** Control-arm propensity histogram (same binning). */ control: number[]; /** Domain of the propensity axis (default [0,1]). */ domain?: [number, number]; /** Caption shown at top-right (e.g. "62% common support"). */ supportLabel?: string; /** Whether positivity clears the guard — toggles the caption tone. */ positivityOk?: boolean; height?: number; } /** * A mirrored (back-to-back) histogram of the two arms' propensity scores: * treated bars rise above a centre axis, control bars fall below it. Where the * two densities both have mass is the **common support** — the only region a * like-for-like comparison can be drawn. Contract-agnostic: the caller converts * the two `Vector` to `number[]` and passes the [0,1] domain. */ export declare function OverlapHistogram({ treated, control, domain, supportLabel, positivityOk, height }: OverlapHistogramProps): ReactElement; export {}; //# sourceMappingURL=charts.d.ts.map