import type { Bar, Point, Timeframe } from '../api/types'; export interface ChartEventMap { crosshairMove: { time: number; price: number; bar?: Bar; }; click: { time: number; price: number; }; symbolChange: string; timeframeChange: Timeframe; chartTypeChange: string; drawingAdded: { id: string; tool: string; points: Point[]; }; drawingRemoved: string; drawingModified: { id: string; points: Point[]; }; visibleRangeChange: { from: number; to: number; }; indicatorAdded: { id: string; name: string; }; indicatorRemoved: string; dataLoaded: { symbol: string; bars: number; }; barUpdate: Bar; drawingSelected: { id: string; drawing: any; clientX: number; clientY: number; }; drawingDeselected: undefined; textInputRequested: { drawingId: string; toolName: string; clientX: number; clientY: number; currentText: string; color: string; lineWidth: number; }; tradeRequested: { side: 'buy' | 'sell'; price: number; type: 'market' | 'limit'; action?: string; }; orderLineMoved: { id: string; price: number; }; } type Listener = (data: T) => void; export declare class EventEmitter { private listeners; /** Subscribe to an event */ on(event: K, listener: Listener): void; /** Unsubscribe from an event */ off(event: K, listener: Listener): void; /** Subscribe to an event — fires once then auto-unsubscribes */ once(event: K, listener: Listener): void; /** Emit an event to all listeners */ emit(event: K, data: ChartEventMap[K]): void; /** Remove all listeners */ removeAll(): void; } export {};