@bitbybit-dev/core
Version:
Bit By Bit Developers Core CAD API to Program Geometry
42 lines (41 loc) • 1.56 kB
TypeScript
import { OCCTWorkerManager } from "@bitbybit-dev/occt-worker";
import { JSCADWorkerManager } from "@bitbybit-dev/jscad-worker";
import { ManifoldWorkerManager } from "@bitbybit-dev/manifold-worker";
import type { WorkerInstances, WorkerOptions } from "./worker-utils";
/**
* Options for initializing bitbybit
*/
export interface InitBitByBitOptions extends WorkerOptions {
/** Pre-created worker instances. If not provided, workers will be created from CDN. */
workers?: WorkerInstances;
}
/**
* Interface for worker managers that engine-specific BitByBitBase classes must implement
*/
export interface BitByBitWorkerManagers {
occtWorkerManager: OCCTWorkerManager;
jscadWorkerManager: JSCADWorkerManager;
manifoldWorkerManager: ManifoldWorkerManager;
}
/**
* Result of kernel initialization
*/
export interface InitKernelsResult {
message: string;
initializedKernels: string[];
}
/**
* Waits for all enabled kernels to be initialized.
* This is engine-agnostic and can be used by all engine packages.
*
* @param managers - The worker managers from BitByBitBase
* @param options - Which kernels are enabled
*/
export declare function waitForKernelInitialization(managers: BitByBitWorkerManagers, options: WorkerOptions): Promise<InitKernelsResult>;
/**
* Creates worker instances based on options.
* If workers are provided in options, uses those. Otherwise creates from CDN.
*
* @param options - Initialization options
*/
export declare function getOrCreateWorkers(options: InitBitByBitOptions): WorkerInstances;