import { IndicatorData } from './types'; import { Series } from '../Series'; export type IndicatorPresetName = "rsi" | "macd" | "bollinger" | "bollingerBands" | "ema" | "sma" | "stochastic"; export interface IndicatorPresetOptions { period?: number; fastPeriod?: number; slowPeriod?: number; signalPeriod?: number; stdDev?: number; /** Root id for generated series (default: preset name) */ id?: string; label?: string; } export interface ComputedIndicatorPreset { id: string; preset: IndicatorPresetName; /** overlay = price chart bands/lines; oscillator = separate pane layers */ placement: "overlay" | "oscillator"; yRange?: [number, number]; data: IndicatorData; } /** Extract X and close/price array from a source series. */ export declare function extractPriceSeries(source: Series): { x: Float32Array | Float64Array; prices: Float32Array | Float64Array; }; /** Extract OHLC from candlestick series for stochastic and similar presets. */ export declare function extractOhlcSeries(source: Series): { x: Float32Array | Float64Array; open: Float32Array | Float64Array; high: Float32Array | Float64Array; low: Float32Array | Float64Array; close: Float32Array | Float64Array; }; /** Resolve source series from chart API surface. */ export declare function resolveSourceSeries(chart: { getSeries(id: string): Series | undefined; getAllSeries(): Series[]; }, sourceSeriesId?: string): Series; /** * Compute composite indicator layers for a preset (async worker path when available). */ export declare function computeIndicatorPreset(preset: IndicatorPresetName, x: Float32Array | Float64Array, prices: Float32Array | Float64Array, options?: IndicatorPresetOptions, source?: Series): Promise; export declare function isOverlayPreset(preset: IndicatorPresetName): boolean;