import type { IArcGraphicAttribute, IGraphicAttribute, IGroupGraphicAttribute, ILineGraphicAttribute, ISymbolGraphicAttribute, SymbolType } from '@visactor/vrender-core'; import type { Point, State } from '../core/type'; export type SymbolAttributes = { visible: boolean; symbolType?: SymbolType; size?: number; autoRotate?: boolean; refX?: number; refY?: number; refAngle?: number; clip?: boolean; style?: Partial; }; export interface CommonSegmentAttributes extends IGroupGraphicAttribute { visible?: boolean; startSymbol?: SymbolAttributes; endSymbol?: SymbolAttributes; } export interface SegmentAttributes extends CommonSegmentAttributes { multiSegment?: boolean; mainSegmentIndex?: number; points: Point[] | Point[][]; lineStyle?: ILineGraphicWithCornerRadius | Partial[]; state?: { line?: State[]>; symbol?: State>; startSymbol?: State>; endSymbol?: State>; }; } export interface ArcSegmentAttributes extends CommonSegmentAttributes { center: { x: number; y: number; }; radius: number; startAngle: number; endAngle: number; lineStyle?: IArcGraphicAttribute; state?: { line?: State; symbol?: State>; startSymbol?: State>; endSymbol?: State>; }; } export interface ILineGraphicWithCornerRadius extends Partial { cornerRadius?: number; }