import { BaseModelLoader, THREE, type ModelLoadContext, type ModelLoadFromBufferContext } from "@x-viewer/core"; export declare const DEFAULT_OCCT_IMPORT_SCRIPT_URL = "https://cdn.jsdelivr.net/npm/occt-import-js@0.0.23/dist/occt-import-js.js"; /** Folder containing `occt-import-js.wasm` (same layout as npm `dist/`). */ export declare const DEFAULT_OCCT_WASM_BASE_URL = "https://cdn.jsdelivr.net/npm/occt-import-js@0.0.23/dist/"; type OcctExchangeImportParams = { linearUnit?: "millimeter" | "centimeter" | "meter" | "inch" | "foot"; linearDeflectionType?: "bounding_box_ratio" | "absolute_value"; linearDeflection?: number; angularDeflection?: number; }; /** * occt-import-js defaults `linearUnit` to millimeter; x-viewer uses meters for scene and measurements. * Applies to STEP and IGES readers. BREP ignores `linearUnit` on vertex positions; see `BREP_TO_METERS_SCALE` below. */ export declare const DEFAULT_STEP_IMPORT_PARAMS: OcctExchangeImportParams; export interface StepModelLoaderOptions { /** Full URL to `occt-import-js.js`. Default: {@link DEFAULT_OCCT_IMPORT_SCRIPT_URL}. */ scriptUrl?: string; /** Folder URL for wasm (trailing `/` optional). Default: {@link DEFAULT_OCCT_WASM_BASE_URL}. */ wasmBaseUrl?: string; } /** * Loads STEP (`.step` / `.stp`), IGES (`.iges` / `.igs`), and BREP (`.brep` / `.rle`) via occt-import-js. * BREP geometry is scaled from assumed millimeters to meters so it matches STEP/IGES with `linearUnit: "meter"`. */ export declare class StepModelLoader extends BaseModelLoader { readonly id = "loader.plugin.step"; readonly priority = 10; readonly formats: readonly ["step", "stp", "iges", "igs", "brep", "rle"]; private readonly scriptUrl; private readonly wasmBaseUrl; private readonly importParams; constructor(options?: StepModelLoaderOptions); load(ctx: ModelLoadContext): Promise; loadFromBuffer(ctx: ModelLoadFromBufferContext): Promise; private parseOcctToResult; private reportProgress; } export {};