import type { Bar } from './types'; export interface IndicatorMetadataConfig { title: string; shortTitle?: string; overlay?: boolean; format?: 'price' | 'percent' | 'volume'; precision?: number; } export interface InputDefinition { name: string; type: 'int' | 'float' | 'source' | 'bool' | 'string'; title: string; defaultValue: number | string | boolean; min?: number; max?: number; step?: number; options?: string[]; } export interface IndicatorContext { readonly data: Bar[]; readonly open: number[]; readonly high: number[]; readonly low: number[]; readonly close: number[]; readonly volume: number[]; readonly time: number[]; readonly paneIndex: number; } export interface IndicatorInstance { readonly metadata: IndicatorMetadataConfig; getPaneIndex(): number; isOverlay(): boolean; getInputs(): InputDefinition[]; updateInputs(inputs: Record): void; getInputValues(): Record; calculate(data: Bar[]): void; } export interface IndicatorConstructor { new (): IndicatorInstance; } export declare function indicator(metadata: IndicatorMetadataConfig, setup: (ctx: IndicatorContext) => void): IndicatorConstructor; //# sourceMappingURL=indicator.d.ts.map