import { EPostMessageType, EToolsKey } from "../enum"; import { IRectType, ISVGOptions } from "../types"; import type { Ellipse, Group, Label, Path, Polyline, Rect, Sprite, SpriteSvg } from "spritejs"; import { PencilOptions, PencilShape } from "./pencil"; import { LaserPenOptions, LaserPenShape } from "./laserPen"; import { EraserOptions, EraserShape } from "./eraser"; import { StarOptions, StarShape } from "./star"; import { SelectorOptions, SelectorShape } from "./selector"; import { ArrowOptions, ArrowShape } from "./arrow"; import { StraightOptions, StraightShape } from "./straight"; import { EllipseOptions, EllipseShape } from "./ellipse"; import { PolygonOptions, PolygonShape } from "./polygon"; import { RectangleOptions, RectangleShape } from "./rectangle"; import { VNodeManager } from "../vNodeManager"; import { SpeechBalloonOptions, SpeechBalloonShape } from "./speechBalloon"; import { TextShape } from "./text"; import { TextOptions } from "../../component/textEditor"; import { ImageOptions, ImageShape } from "./image"; import type { ServiceWorkForFullWorker } from "../worker/fullWorkerService"; import type { SubServiceThread } from "../mainThread/subServiceThread"; import { BaseShapeOptions, BaseShapeTool } from "./base"; import { PencilEraserOptions, PencilEraserShape } from "./pencilEraser"; import { BitMapEraserOptions, BitMapEraserShape } from "./pencilEraserBitMap"; import { ISvgShadowShape } from "./shadowSvg"; export type ShapeTools = typeof PencilShape | typeof LaserPenShape | typeof PencilEraserShape | typeof BitMapEraserShape | typeof EraserShape | typeof StarShape | typeof SelectorShape | typeof ArrowShape | typeof EllipseShape | typeof RectangleShape | typeof StarShape | typeof PolygonShape | typeof TextShape | typeof SpeechBalloonShape | typeof ImageShape | typeof ISvgShadowShape; export type ShapeToolsClass = BaseShapeTool | PencilShape | LaserPenShape | PencilEraserShape | BitMapEraserShape | EraserShape | StarShape | SelectorShape | ArrowShape | EllipseShape | RectangleShape | StarShape | PolygonShape | TextShape | SpeechBalloonShape | ImageShape | ISvgShadowShape; export type ShapeOptions = PencilOptions | LaserPenOptions | PencilEraserOptions | BitMapEraserOptions | EraserOptions | StarOptions | SelectorOptions | ArrowOptions | EllipseOptions | RectangleOptions | StarOptions | PolygonOptions | StraightOptions | TextOptions | SpeechBalloonOptions | ImageOptions | ISVGOptions; export type ShapeNodes = Group | Path | Polyline | Rect | Ellipse | Sprite | Label | SpriteSvg; export type ServiceThreadSubWork = SubServiceThread | ServiceWorkForFullWorker; export type ShapeOptionsType = E; export interface CombineConsumeResult { type: EPostMessageType; rect: IRectType | undefined; consumeIndex: number; } export declare function getShapeTools(toolsType: EToolsKey): typeof ArrowShape | typeof PencilShape | typeof StraightShape | typeof EllipseShape | typeof PolygonShape | typeof StarShape | typeof RectangleShape | typeof SpeechBalloonShape | typeof TextShape | typeof LaserPenShape | typeof EraserShape | typeof PencilEraserShape | typeof BitMapEraserShape | typeof SelectorShape | typeof ImageShape | typeof ISvgShadowShape | undefined; export declare function getShapeInstance(param: { workId: string; toolsType: EToolsKey; toolsOpt: ShapeOptions; vNodes?: VNodeManager; fullLayer: Group; drawLayer?: Group; }, serviceWork?: ServiceThreadSubWork): ArrowShape | PencilShape | StraightShape | EllipseShape | PolygonShape | StarShape | RectangleShape | SpeechBalloonShape | TextShape | LaserPenShape | EraserShape | PencilEraserShape | BitMapEraserShape | SelectorShape | ImageShape | ISvgShadowShape | undefined; export declare function findShapeBody(nodes: ShapeNodes[]): ShapeNodes[];