import type { IGroupGraphicAttribute, ILineGraphicAttribute, IPolygonGraphicAttribute, IRectGraphicAttribute } from '@visactor/vrender-core';
import type { Point } from '../core/type';
export interface BaseCrosshairAttrs extends IGroupGraphicAttribute {
    type?: 'line' | 'rect' | 'circle' | 'polygon' | 'sector' | 'polygon-sector';
}
export interface PolarCrosshairAttrs extends BaseCrosshairAttrs {
    center: Point;
    radius: number;
    startAngle?: number;
    endAngle?: number;
}
export interface LineCrosshairAttrs extends BaseCrosshairAttrs {
    type?: 'line';
    start: Point;
    end: Point;
    lineStyle?: Partial<ILineGraphicAttribute>;
}
export interface CircleCrosshairAttrs extends PolarCrosshairAttrs {
    type?: 'circle';
    lineStyle?: Partial<ILineGraphicAttribute>;
}
export interface RectCrosshairAttrs extends BaseCrosshairAttrs {
    type?: 'rect';
    start: Point;
    end: Point;
    rectStyle?: Partial<IRectGraphicAttribute>;
}
export interface SectorCrosshairAttrs extends PolarCrosshairAttrs {
    type?: 'sector';
    innerRadius?: number;
    sectorStyle?: Partial<ILineGraphicAttribute>;
}
export interface PolygonCrosshairAttrs extends PolarCrosshairAttrs {
    type?: 'polygon';
    sides: number;
    lineStyle?: Partial<ILineGraphicAttribute>;
}
export interface PolygonSectorCrosshairAttrs extends PolarCrosshairAttrs {
    type?: 'polygon-sector';
    innerRadius?: number;
    polygonSectorStyle?: Partial<IPolygonGraphicAttribute>;
}
