import { IServiceWorkItem, IWorkerMessage } from "../types";
import { MainThreadEngineImpl, ISubThreadInitOption } from "./base";
import { VNodeManager } from "../vNodeManager";
export interface SubServiceThread {
    workShapes: Map<string, IServiceWorkItem>;
    selectorWorkShapes: Map<string, IServiceWorkItem>;
    destroy(): void;
    clearAll(): void;
    consumeDraw(data: IWorkerMessage): void;
    runReverseSelectWork(selectIds: string[]): void;
    consumeFull(data: IWorkerMessage): void;
    removeWork(data: IWorkerMessage): void;
    runSelectWork(data: IWorkerMessage): void;
}
export declare class SubServiceMainThreadImpl implements SubServiceThread {
    readonly vNodes: VNodeManager;
    readonly thread: MainThreadEngineImpl;
    workShapes: Map<string, IServiceWorkItem>;
    selectorWorkShapes: Map<string, IServiceWorkItem>;
    private willRunEffectSelectorIds;
    private runEffectId?;
    private animationId?;
    private syncUnitTime;
    constructor(opt: ISubThreadInitOption);
    loadImageBitMap(msg: Pick<IWorkerMessage, 'toolsType' | 'opt' | 'workId'>): Promise<ImageBitmap | undefined>;
    destroy(): void;
    clearAll(): void;
    private runEffect;
    private effectRunSelector;
    runSelectWork(data: IWorkerMessage): void;
    removeWork(data: IWorkerMessage): void;
    consumeFull(data: IWorkerMessage): void;
    runReverseSelectWork(selectIds: string[]): void;
    consumeDraw(data: IWorkerMessage): void;
    private computNextAnimationIndex;
    private animationDraw;
    private runAnimation;
    private hasDiffData;
    private activeWorkShape;
    private removeNode;
    private removeSelectWork;
    private activeSelectorShape;
    private setNodeKey;
}
