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 StraightOptions extends BaseShapeOptions { thickness: number; strokeColor: string; strokeType: EStrokeType; } export declare class StraightShape extends BaseShapeTool { readonly canRotate: boolean; scaleType: EScaleType; readonly toolsType: EToolsKey; protected tmpPoints: Array; protected workOptions: StraightOptions; oldRect?: IRectType; private straightTipWidth; private syncTimestamp; constructor(props: BaseShapeToolProps); consume(props: { data: IWorkerMessage; isFullWork?: boolean; isClearAll?: boolean; isSubWorker?: boolean; isMainThread?: boolean; smoothSync?: boolean; isSimpleWorker?: boolean; }): BaseConsumeResultType; consumeAll(): { type: EPostMessageType; removeIds: string[]; } | { updateNodeOpt: { useAnimation: boolean; }; workId: string; toolsType: EToolsKey; opt: import("./utils").ShapeOptions; rect: IRectType; type: EPostMessageType; dataType: EDataType; ops: string; isSync: boolean; removeIds?: undefined; }; private draw; private computDrawPoints; private computFullPoints; private computDotPoints; 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; }