import { PluginContext, InteractionEvent, PluginManifest } from '../types'; import { SVGExportPluginContext } from '../../core/chart/exporter/svg/plugins/types'; export interface RoiPoint { x: number; y: number; } export interface RoiRegion { id: string; tool: "rectangle" | "circle" | "polygon" | "lasso"; points: RoiPoint[]; color?: string; fill?: string; } export interface RoiMaskResult { regionId: string; seriesId: string; masks: boolean[]; } export interface RoiSelectedEvent { region: RoiRegion; seriesIds: string[]; masks: RoiMaskResult[]; } export interface RoiAPI { setTool(tool: RoiTool): void; clear(): void; getRegions(): RoiRegion[]; removeRegion(id: string): void; calculateMasks(regionId: string): RoiMaskResult[]; isEnabled(): boolean; setEnabled(enabled: boolean): void; } export type RoiTool = "rectangle" | "circle" | "polygon" | "lasso"; export interface PluginROIConfig { defaultTool?: RoiTool; stroke?: string; fill?: string; enabled?: boolean; mask?: boolean; } export declare const PluginROI: (config?: PluginROIConfig) => { manifest: PluginManifest; onInit(pluginCtx: PluginContext): void; onDestroy(): void; onInteraction(_pluginCtx: PluginContext, event: InteractionEvent): void; onRenderOverlay(pluginCtx: PluginContext): void; onExportSVG(svgCtx: SVGExportPluginContext): void; api: RoiAPI; }; export type RoiEvent = "roi:selected" | "roi:created" | "roi:cleared";