import { Group, Scene } from "spritejs"; import { ECanvasShowType, EDataType } from "../enum"; import { MethodBuilderWorker } from "../msgEvent/forWorker"; import { IBatchMainMessage, ICameraOpt, ILayerOptionType, IMainMessageRenderData, IWorkerMessage } from "../types"; import { ISimpleWorkerInitOption, IWorkerInitOption, WorkThreadEngineBase } from "./base"; import { LocalWorkForFullWorker } from "./fullWorkerLocal"; import { ServiceWorkForFullWorker } from "./fullWorkerService"; import { LocalWorkForSubWorker } from "./subWorkerLocal"; import { TopLayerWorkForSubWorker } from "./subWorkerTopLayer"; import { LocalWorkForSimpleWorker, ServiceWorkForSimpleWorker } from "./simpleWorker"; import { SnapshotWork } from "./snapshotWork"; export declare enum EWorkThreadType { Full = "full", Sub = "sub" } export declare class WorkerManager { readonly _self: Worker; readonly version: string; protected type: EWorkThreadType; protected workThreadMap: Map; constructor(worker: Worker, type: EWorkThreadType); private init; private setFontFaces; private isFontAvailable; private register; post: (msg: IBatchMainMessage, transfer?: Transferable[]) => void; } /** sub worker */ export declare class WorkThreadEngineForSubWorker extends WorkThreadEngineBase { readonly type: EWorkThreadType; _post: (msg: IBatchMainMessage, transfer?: Transferable[] | undefined) => void; topLayer?: Group; serviceWork: undefined; localWork: LocalWorkForSubWorker; topLayerWork?: TopLayerWorkForSubWorker; snapshotWork: SnapshotWork; constructor(viewId: string, opt: IWorkerInitOption, _post: (msg: IBatchMainMessage, transfer?: Transferable[]) => void); combinePost(): Promise; on(msg: IWorkerMessage): Promise; protected createLocalWork(data: IWorkerMessage): void; removeNode(data: IWorkerMessage): Promise; getLayer(drawCanvas: ECanvasShowType): Group; getOffscreen(drawCanvas: ECanvasShowType): OffscreenCanvas; consumeDraw(dataType: EDataType, data: IWorkerMessage): Promise; consumeDrawAll(_type: EDataType, data: IWorkerMessage): Promise; clearAll(): Promise; private getRectImageBitmap; protected updateLayer(layerOpt: ILayerOptionType): void; updateDpr(dpr: number): Promise; updateCamera(msg: IWorkerMessage): Promise; setCameraOpt(cameraOpt: ICameraOpt, layer?: Group): void; } /** full worker */ export declare class WorkThreadEngineForFullWorker extends WorkThreadEngineBase { serviceDrawLayer: Group; localDrawLayer: Group; snapshotFullLayer: undefined; protected methodBuilder: MethodBuilderWorker; localWork: LocalWorkForFullWorker; serviceWork: ServiceWorkForFullWorker; _post: (msg: IBatchMainMessage, transfer?: Transferable[] | undefined) => void; private debounceUpdateCache; constructor(viewId: string, opt: IWorkerInitOption, _post: (msg: IBatchMainMessage, transfer?: Transferable[]) => void); combinePost(): Promise; on(msg: IWorkerMessage): Promise; removeNode(data: IWorkerMessage): Promise; checkTextActive(data: IWorkerMessage): Promise; clearAll(): Promise; protected updateLayer(layerOpt: ILayerOptionType): void; setCameraOpt(cameraOpt: ICameraOpt): void; protected getLayer(drawCanvas: ECanvasShowType): Group | undefined; getOffscreen(drawCanvas: ECanvasShowType): OffscreenCanvas; consumeFull(type: EDataType, data: IWorkerMessage): Promise; consumeDraw(type: EDataType, data: IWorkerMessage): Promise; consumeDrawAll(type: EDataType, data: IWorkerMessage): Promise; updateDpr(dpr: number): Promise; updateCamera(msg: IWorkerMessage): Promise; protected getRectImageBitmap(renderData: Required>): Promise; private cursorHover; private cursorBlur; destroy(): void; } /** simple worker */ export declare class WorkThreadEngineForSimpleWorker extends WorkThreadEngineForFullWorker { private snapshotWork; localDrawScene?: Scene; serviceDrawScene?: Scene; private offscreenCanvas?; localWork: LocalWorkForSimpleWorker; serviceWork: ServiceWorkForSimpleWorker; protected createRenderLayer(scene: Scene, opt: ISimpleWorkerInitOption, targetOffscreenCanvas?: OffscreenCanvas): void; protected createScene(opt: ISimpleWorkerInitOption, targetOffscreenCanvas?: OffscreenCanvas): Scene; protected combinePostData(): IBatchMainMessage; on(msg: IWorkerMessage): Promise; setCameraOpt(cameraOpt: ICameraOpt): void; updateDpr(dpr: number): Promise; constructor(viewId: string, opt: ISimpleWorkerInitOption, _post: (msg: IBatchMainMessage, transfer?: Transferable[]) => void); }