import { IActiveToolsDataType, IWorkerMessage, IMainMessage, IUpdateSelectorPropsType, IBatchMainMessage } from "../types"; import type { BaseShapeTool, BaseShapeOptions, SelectorShape, ImageShape, ShapeToolsClass } from "../tools"; import { MainThreadEngineImpl, ISubThreadInitOption } from "./base"; import { VNodeManager } from "../vNodeManager"; import { EToolsKey } from "../enum"; import { SubServiceThread } from "./subServiceThread"; import { TextShape } from "../tools/text"; import type { BitMapEraserShape } from "../tools/pencilEraserBitMap"; import type { PencilEraserShape } from "../tools/pencilEraser"; import { ISvgShadowShape } from "../tools/shadowSvg"; export interface SubLocalThread { readonly vNodes: VNodeManager; readonly thread: MainThreadEngineImpl; workShapes: Map; effectSelectNodeData: Set; destroy(): void; clearAll(): void; clearWorkShapeNodeCache(workId: string): void; setToolsOpt(opt: IActiveToolsDataType): void; getToolsOpt(): IActiveToolsDataType | undefined; createWorkShapeNode(opt: IActiveToolsDataType & { workId: string; }): void; setWorkOptions(workId: string, opt: BaseShapeOptions): void; consumeDrawAll(data: IWorkerMessage, serviceWork: SubServiceThread): void; consumeDraw(data: IWorkerMessage, serviceWork: SubServiceThread): void; colloctEffectSelectWork(data: IWorkerMessage): Promise; hasSelector(): boolean; getSelector(): SelectorShape | undefined; reRenderSelector(willSyncService?: boolean): void; blurSelector(data?: IWorkerMessage): Promise; getWorkShape(workId: string): BaseShapeTool | undefined; getWorkShapes(): Map; setFullWork(data: Pick): ShapeToolsClass | undefined; consumeFull(data: IWorkerMessage): Promise; removeWork(data: IWorkerMessage): void; removeSelector(data: IWorkerMessage): Promise; updateFullSelectWork(data: IWorkerMessage): void; cursorHover(msg: IWorkerMessage): void; cursorBlur(): void; checkTextActive(data: IWorkerMessage): Promise; removeNode(key: string): void; updateSelector(params: IUpdateSelectorPropsType & { callback?: (props: { res?: IMainMessage; param: IUpdateSelectorPropsType; postData: Pick; workShapeNode: SelectorShape; newServiceStore: Map; smoothSync?: boolean; }) => void; }): Promise; createLocalWork(data: IWorkerMessage): void; } export declare class SubLocalMainThreadImpl implements SubLocalThread { readonly vNodes: VNodeManager; readonly thread: MainThreadEngineImpl; workShapes: Map; effectSelectNodeData: Set; private batchEraserRemoveNodes; private batchEraserWorks; private tmpOpt?; private syncUnitTime; private fullWorkerDrawCount; private drawWorkActiveId?; private consumeCount; private combineTimerId?; private combineDrawResolve?; private combineDrawActiveId?; constructor(opt: ISubThreadInitOption); loadImageBitMap(msg: Pick): Promise; createLocalWork(data: IWorkerMessage): void; updateSelector(params: IUpdateSelectorPropsType & { callback?: ((props: { res?: IMainMessage | undefined; param: IUpdateSelectorPropsType; postData: Pick; workShapeNode: SelectorShape; newServiceStore: Map; smoothSync?: boolean; }) => void) | undefined; }): Promise; destroy(): void; clearAll(): void; checkTextActive(data: IWorkerMessage): Promise; cursorHover(msg: IWorkerMessage): void; cursorBlur(): void; updateFullSelectWork(data: IWorkerMessage): void; removeSelector(data: IWorkerMessage): Promise; removeWork(data: IWorkerMessage): void; removeNode(key: string): void; setFullWork(data: Pick): BaseShapeTool | undefined; consumeFull(data: IWorkerMessage): Promise; colloctEffectSelectWork(data: IWorkerMessage): Promise; private runEffectSelectWork; hasSelector(): boolean; getSelector(): SelectorShape; reRenderSelector(willSyncService?: boolean): Promise | undefined; blurSelector(data?: IWorkerMessage): Promise; clearWorkShapeNodeCache(workId: string): void; private drawBitMapEraserFull; private drawPencilEraserFull; private drawEraser; getWorkShape(workId: string): BaseShapeTool | undefined; getWorkShapes(): Map; consumeDraw(data: IWorkerMessage, serviceWork: SubServiceThread): void; private drawEraserCombine; consumeDrawAll(data: IWorkerMessage, serviceWork: SubServiceThread): void; getToolsOpt(): IActiveToolsDataType | undefined; setToolsOpt(opt: IActiveToolsDataType): void; setWorkOptions(workId: string, opt: BaseShapeOptions): void; createWorkShapeNode(opt: IActiveToolsDataType & { workId: string; }): import("../tools").ArrowShape | import("../tools").PencilShape | import("../tools/straight").StraightShape | import("../tools").EllipseShape | import("../tools").PolygonShape | import("../tools").StarShape | import("../tools").RectangleShape | import("../tools").SpeechBalloonShape | TextShape | import("../tools").LaserPenShape | import("../tools").EraserShape | PencilEraserShape | BitMapEraserShape | SelectorShape | ImageShape | ISvgShadowShape | undefined; }