import type { CandleMetrics, CandlePoint } from "../types"; import type { ChartPadding } from "./line"; export interface CandleRect { x: number; y: number; w: number; h: number; up: boolean; } export interface CandleWick { x: number; y1: number; y2: number; up: boolean; } export interface CandleGeometry { bodies: CandleRect[]; wicks: CandleWick[]; } export interface CandleFocusClip { x: number; y: number; width: number; height: number; } /** Stable off-canvas clip used when no candle is focused. */ export declare const HIDDEN_CANDLE_FOCUS_CLIP: CandleFocusClip; /** * Keep the full-strength candle pass visible while a candle is selected and * while the shared dimmed batch is still returning to full opacity. The latter * prevents the selected candle from briefly dropping to the dim opacity when a * scrub ends or moves into a gap. */ export declare function computeCandleFocusPassOpacity(scrubActive: boolean, hasScrubCandle: boolean, inactiveCandleOpacity: number): number; /** * Return the visible screen-space time slot occupied by one candle bucket. * The focus renderer clips the existing batched candle paths to this strip, * repainting only the selected body and wick without building another SkPath. */ export declare function computeCandleFocusClip(candle: { time: number; } | null, padding: ChartPadding, canvasW: number, canvasH: number, winStart: number, windowSecs: number, candleWidthSecs: number): CandleFocusClip; /** * Build screen-space candle bodies and wicks for a visible window. * Pure worklet — no Skia imports, consumed by useCandlePaths. */ export declare function buildCandleGeometry(candles: CandlePoint[], liveCandle: CandlePoint | null, padding: ChartPadding, canvasW: number, canvasH: number, winStart: number, windowSecs: number, displayMin: number, displayMax: number, candleWidthSecs: number, metrics?: CandleMetrics): CandleGeometry; //# sourceMappingURL=candle.d.ts.map