UNPKG

semantic-ds-toolkit

Version:

Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference

69 lines 2.14 kB
import { OfflineMode, ExchangeRateResult } from './fx-cache'; export interface ConversionMetadata { rateSource?: ExchangeRateResult['source']; rateAgeMs?: number; confidence?: number; audit?: { timestamp: Date; conversion: string; rate?: number; source?: ExchangeRateResult['source']; stalenessMs?: number; }; } export interface ConversionResult { value: number; fromUnit: string; toUnit: string; rate?: number; timestamp: Date; metadata?: ConversionMetadata; } export interface UnitConversionConfig { cacheTTL?: number; fallbackRates?: Record<string, number>; unitMappingsPath?: string; offlineMode?: OfflineMode; commonCurrencyPairs?: Array<{ from: string; to: string; }>; } export type UnitCategory = 'currency' | 'temperature' | 'distance' | 'time' | 'mass' | 'volume' | 'area'; export interface UnitDefinition { symbol: string; name: string; category: UnitCategory; baseUnit?: string; conversionFactor?: number; conversionFunction?: (value: number, fromUnit: string, toUnit: string) => number; } export declare class UnitConverter { private fxCache; private config; private unitDefinitions; private aliases; private unitMappingsPath; constructor(config?: UnitConversionConfig); private resolveMappingsPath; private loadUnitsFromYAML; private normalizeCategory; private findBaseSymbol; refreshUnitDefinitions(): void; private normalizeUnit; private convertTemperature; convert(value: number, fromUnit: string, toUnit: string): Promise<ConversionResult>; convertBatch(conversions: Array<{ value: number; fromUnit: string; toUnit: string; }>): Promise<ConversionResult[]>; getSupportedUnits(category?: UnitCategory): string[]; getUnitInfo(unit: string): UnitDefinition | undefined; addCustomUnit(definition: UnitDefinition): void; prefetchCommonRates(pairs?: Array<{ from: string; to: string; }> | undefined): Promise<void>; } //# sourceMappingURL=unit-convert.d.ts.map