import type { UnitProps, UnitsProvider } from "./Interfaces"; /** @internal — test use only. Resets the shared module-level lazy cache. */ export declare function _testResetUnitsCache(): void; /** * A `UnitsProvider` backed by the full BIS `Units.ecschema.json` bundled as a JSON asset. * * The bundled JSON is loaded lazily via dynamic `import()` on the first provider call and cached * at module scope — construction is essentially free, and multiple instances * share the same immutable lookup indexes. * * If an initial schema load fails, later provider calls will retry the load instead of pinning the * provider into a permanently failed module-level state. * * This is the zero-dependency default for backends, tools, and any frontend that doesn't need * iModel overrides. Equivalent to calling `createUnitsProvider()` with no arguments. * * @see createUnitsProvider for layering schema-defined units on top of basic BIS units. * @beta */ export declare class BasicUnitsProvider implements UnitsProvider { /** Find a unit by its display label, optionally filtering by schema name, phenomenon, and unit system. * @param unitLabel - The display label to search for (case-insensitive). * @param schemaName - Optional schema name filter. Returns `BadUnit` if provided and not `"Units"`. * @param phenomenon - Optional phenomenon filter (e.g. `"Units.LENGTH"`). * @param unitSystem - Optional unit system filter (e.g. `"Units.METRIC"`). * @returns The matching `UnitProps`, or a `BadUnit` if no match is found. */ findUnit(unitLabel: string, schemaName?: string, phenomenon?: string, unitSystem?: string): Promise; /** Return all units belonging to the given phenomenon (unit family). * @param phenomenon - The phenomenon full name (e.g. `"Units.LENGTH"`). * @returns An array of matching `UnitProps`, or an empty array if none. */ getUnitsByFamily(phenomenon: string): Promise; /** Find a unit by its fully-qualified name (e.g. `"Units.M"`). * @param unitName - The qualified unit name. * @returns The matching `UnitProps`, or a `BadUnit` if not found. */ findUnitByName(unitName: string): Promise; /** Compute the conversion factors from `fromUnit` to `toUnit`. * Handles normal units, inverted units, and mixed (inverted ↔ non-inverted) conversions. * @param fromUnit - The source unit. * @param toUnit - The target unit. * @returns A `UnitConversionProps` with `factor`, `offset`, and optionally `inversion` and `error`. */ getConversion(fromUnit: UnitProps, toUnit: UnitProps): Promise; } //# sourceMappingURL=BasicUnitsProvider.d.ts.map