import { Point, Vector3 } from '@vertexvis/geometry'; import { Color } from '@vertexvis/utils'; export interface CanvasDocument { items: Array; } export interface StrokeStyle { thickness: number; color: Color.Color | string; } export interface FillStyle { color: Color.Color | string; } export interface ArrowEndShape { type: 'arrow-end'; width: number; filled: boolean; } export interface CircleEndShape { type: 'circle-end'; diameter: number; filled: boolean; } export interface DashEndShape { type: 'dash-end'; width: number; } export interface LineItem2d { type: 'line-2d'; startPosition: Point.Point; endPosition: Point.Point; startShape?: ArrowEndShape | CircleEndShape | DashEndShape; endShape?: ArrowEndShape | CircleEndShape | DashEndShape; stroke?: StrokeStyle; fill?: FillStyle; } export interface OvalItem2d { type: 'oval-2d'; topLeftPosition: Point.Point; bottomRightPosition: Point.Point; stroke?: StrokeStyle; fill?: FillStyle; } export interface FreeformItem2d { type: 'freeform-2d'; positions: Point.Point[]; stroke?: StrokeStyle; fill?: FillStyle; } export interface CalloutItem { type: 'callout'; primaryColor: Color.Color | string; accentColor: Color.Color | string; text: string; anchorPosition: Vector3.Vector3; textPosition: Point.Point; sceneItemId?: string; } export interface PinItem2d { type: 'pin-2d'; primaryColor: Color.Color | string; accentColor: Color.Color | string; position: Vector3.Vector3; sceneItemId?: string; }