import { IWorkerMessage, IRectType, IUpdateNodeOpt } from "../types"; import { EDataType, EPostMessageType, EScaleType, EToolsKey, EventWorkState } from "../enum"; import { Point2d } from "../utils/primitives/Point2d"; import { BaseConsumeResultType, BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base"; import { VNodeManager } from "../vNodeManager"; import { ShapeNodes } from "./utils"; import { EStrokeType } from "../../plugin/types"; export interface ArrowOptions extends BaseShapeOptions { thickness: number; strokeColor: string; strokeType: EStrokeType; } export declare class ArrowShape extends BaseShapeTool { readonly canRotate: boolean; scaleType: EScaleType; readonly toolsType: EToolsKey; protected tmpPoints: Array; protected workOptions: ArrowOptions; oldRect?: IRectType; private arrowTipWidth; private syncTimestamp; constructor(props: BaseShapeToolProps); consume(props: { data: IWorkerMessage; isFullWork?: boolean; isSubWorker?: boolean; isMainThread?: boolean; smoothSync?: boolean; isSimpleWorker?: boolean; }): BaseConsumeResultType; consumeAll(): { type: EPostMessageType; removeIds: string[]; } | { type: EPostMessageType; dataType: EDataType; ops: string; isSync: boolean; updateNodeOpt: { useAnimation: boolean; }; workId: string; toolsType: EToolsKey; opt: import("./utils").ShapeOptions; rect: IRectType; removeIds?: undefined; }; private draw; private computDrawPoints; private computFullArrowPoints; private computTrianglePoints; private updateTempPoints; consumeService(props: { op: number[]; isFullWork: boolean; workState?: EventWorkState; }): IRectType | undefined; clearTmpPoints(): void; static updateNodeOpt(param: { node: ShapeNodes; opt: IUpdateNodeOpt; vNodes: VNodeManager; willSerializeData?: boolean; }): IRectType | undefined; }