import { IServiceWorkItem, ILocalWorkItem, IActiveToolsDataType, IWorkerMessage } from "../types";
import { EToolsKey } from "../enum";
import { BaseShapeTool, BaseShapeOptions } from "../tools";
import { MainThreadEngineImpl, ISubThreadInitOption } from "./base";
import { VNodeManager } from "../vNodeManager";
export interface SubTopThread {
    readonly vNodes: VNodeManager;
    readonly thread: MainThreadEngineImpl;
    serviceWorkShapes: Map<string, IServiceWorkItem>;
    localWorkShapes: Map<string, ILocalWorkItem>;
    canUseTopLayer(toolsType: EToolsKey): boolean;
    destroy(): void;
    clearAll(): void;
    setToolsOpt(opt: IActiveToolsDataType): void;
    getToolsOpt(): IActiveToolsDataType | undefined;
    createWorkShapeNode(opt: IActiveToolsDataType & {
        workId: string;
    }): BaseShapeTool | undefined;
    setWorkOptions(workId: string, opt: BaseShapeOptions): void;
    consumeDrawAll(data: IWorkerMessage): void;
    consumeDraw(data: IWorkerMessage): void;
    getLocalWorkShape(workId: string): ILocalWorkItem | undefined;
    createLocalWork(data: IWorkerMessage): void;
}
export declare class SubTopThreadImpl implements SubTopThread {
    readonly vNodes: VNodeManager;
    readonly thread: MainThreadEngineImpl;
    serviceWorkShapes: Map<string, IServiceWorkItem>;
    localWorkShapes: Map<string, ILocalWorkItem>;
    private tmpOpt?;
    private animationId?;
    private syncUnitTime;
    constructor(opt: ISubThreadInitOption);
    createLocalWork(data: IWorkerMessage): void;
    getLocalWorkShape(workId: string): ILocalWorkItem | undefined;
    createLocalWorkShape(workId: string, opt?: BaseShapeOptions): 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 | import("../tools/text").TextShape | import("../tools").LaserPenShape | import("../tools").EraserShape | import("../tools/pencilEraser").PencilEraserShape | import("../tools").BitMapEraserShape | import("../tools").SelectorShape | import("../tools").ImageShape | undefined;
    canUseTopLayer(toolsType: EToolsKey): toolsType is EToolsKey.LaserPen;
    destroy(): void;
    clearAll(): void;
    consumeDraw(data: IWorkerMessage): void;
    setToolsOpt(opt: IActiveToolsDataType): void;
    getToolsOpt(): IActiveToolsDataType | undefined;
    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 | import("../tools/text").TextShape | import("../tools").LaserPenShape | import("../tools").EraserShape | import("../tools/pencilEraser").PencilEraserShape | import("../tools").BitMapEraserShape | import("../tools").SelectorShape | import("../tools").ImageShape | undefined;
    private setNodeKey;
    private activeServiceWorkShape;
    private computNextAnimationIndex;
    private animationDraw;
    private runAnimation;
    setWorkOptions(workId: string, opt: BaseShapeOptions): void;
    consumeDrawAll(data: IWorkerMessage): void;
}
