/** * Logistics Domain Types */ /** * CBM (Cubic Meter) Calculation Types */ export type CbmLengthUnit = 'mm' | 'cm' | 'm'; export interface CbmInput { length: number; width: number; height: number; quantity: number; unit: CbmLengthUnit; } export interface CbmResult { cbmPerUnit: number; totalCbm: number; } /** * Container Fit Calculation Types */ export interface ContainerDimensions { length: number; width: number; height: number; } export interface CargoDimensions { length: number; width: number; height: number; weight: number; } export interface ContainerFitInput { container: ContainerDimensions; cargo: CargoDimensions; allowRotation: boolean; } export interface BoxOrientation { length: number; width: number; height: number; } export interface ContainerFitResult { unitsPerLayer: number; layers: number; totalUnits: number; bestOrientation: BoxOrientation; } /** * EOQ (Economic Order Quantity) Types */ export interface EoqInput { annualDemand: number; orderCost: number; holdingCost: number; } export interface EoqResult { eoq: number; ordersPerYear: number; orderCycleDays: number; annualOrderingCost: number; annualHoldingCost: number; totalAnnualCost: number; } /** * Pallet Stack Calculation Types */ export interface PalletDimensions { length: number; width: number; } export interface BoxDimensions { length: number; width: number; height: number; } export interface PalletStackInput { pallet: PalletDimensions; box: BoxDimensions; maxHeight: number; allowRotation: boolean; } export interface PalletStackResult { boxesPerLayer: number; layers: number; totalBoxes: number; bestOrientation: BoxOrientation; } /** * Safety Stock Calculation Types */ export interface SafetyStockInput { avgDemand: number; demandStdDev: number; avgLeadTime: number; leadTimeStdDev: number; serviceLevel: number; } export interface SafetyStockResult { zScore: number; safetyStock: number; reorderPoint: number; demandDuringLeadTime: number; } /** * DIM Weight (Dimensional Weight) Types */ export type CarrierType = 'domestic_air' | 'international_air' | 'ground'; export interface DimWeightInput { length: number; width: number; height: number; actualWeight: number; carrier: CarrierType; } export interface DimWeightResult { dimensionalWeight: number; actualWeight: number; billableWeight: number; dimFactor: number; isDimWeightHigher: boolean; } /** * Fill Rate Types */ export type FillRateMode = 'order' | 'line'; export interface FillRateInput { mode: FillRateMode; totalOrders: number; filledComplete: number; } export interface FillRateResult { fillRate: number; shortfallRate: number; filledComplete: number; shortfall: number; } export interface ServiceLevelInput { demandStdDev: number; safetyStock: number; } export interface ServiceLevelResult { zScore: number; serviceLevel: number; stockoutProbability: number; } /** * Freight Class Types */ export interface FreightClassInput { weight: number; length: number; width: number; height: number; } export interface FreightClassResult { density: number; freightClass: number; className: string; volumeCuFt: number; } /** * Kanban Types */ export interface KanbanInput { dailyDemand: number; leadTime: number; safetyFactor: number; containerQuantity: number; } export interface KanbanResult { numberOfKanbans: number; numberOfKanbansRounded: number; demandDuringLeadTime: number; safetyStock: number; totalRequirement: number; } /** * 3D Pallet Loading Types */ export type PalletStandard = 'eur' | 'us' | 'cn' | 'jp' | 'custom'; export type RotationConstraint = 'full' | 'layered' | 'fixed'; export interface BoxType3D { id: string; length: number; width: number; height: number; weight: number; quantity: number; canRotate: RotationConstraint; color?: string; } export interface Pallet3DInput { palletStandard: PalletStandard; maxStackHeight: number; maxPayload: number; boxes: BoxType3D[]; customLength?: number; customWidth?: number; } export interface PlacedBox3D { boxTypeId: string; position: { x: number; y: number; z: number; }; dimensions: { l: number; w: number; h: number; }; rotationId: number; color: string; weight: number; } export interface Pallet3DResult { placed: PlacedBox3D[]; unplaced: { boxTypeId: string; count: number; }[]; utilization: { volumePercent: number; weightPercent: number; floorPercent: number; }; centerOfGravity: { x: number; y: number; z: number; isBalanced: boolean; }; metrics: { totalWeight: number; totalBoxes: number; totalLayers: number; maxHeight: number; wastedVolume: number; }; palletDimensions: { length: number; width: number; height: number; }; warnings: string[]; } export interface PalletSpec { length: number; width: number; name: string; } /** * Pick Time Types */ export type PickMode = 'single' | 'batch'; export interface PickTimeInput { mode: PickMode; distance: number; speed: number; itemsPerOrder: number; searchTimePerItem: number; pickTimePerItem: number; documentationTime: number; batchSize?: number; } export interface PickTimeResult { travelTime: number; searchTime: number; pickTime: number; documentationTime: number; totalTime: number; totalTimeMinutes: number; ordersPerHour: number; } /** * Shipping Cost Types */ export type ShippingMode = 'ocean_fcl' | 'ocean_lcl' | 'air' | 'express' | 'truck'; export interface ShippingInput { mode: ShippingMode; weight: number; volume: number; distance?: number; } export interface ShippingResult { mode: string; chargeableWeight: number; volumetricWeight: number; estimatedCost: number; costPerKg: number; transitDays: string; notes: string; } /** * TSP (Traveling Salesman Problem) Types */ export interface TspNode { x: number; y: number; label?: string; } export interface TspInput { nodes: TspNode[]; } export interface TspResult { nnTour: number[]; nnDistance: number; optimizedTour: number[]; optimizedDistance: number; improvementPercent: number; optimalDistance?: number; optimalityGap?: number; } /** * Inventory Turnover Types */ export interface InventoryTurnoverInput { cogs: number; averageInventory: number; periodDays?: number; grossMargin?: number; } export interface InventoryTurnoverResult { turnoverRatio: number; daysOfSupply: number; weeksOfSupply: number; gmroii: number | null; } /** * Forklift Load Capacity Types */ export interface LoadCapacityInput { ratedCapacity: number; ratedLoadCenter: number; actualLoadCenter: number; actualLoad?: number; attachmentWeightLoss?: number; } export interface LoadCapacityResult { effectiveCapacity: number; loadCenterDerating: number; netCapacity: number; utilization: number | null; isOverloaded: boolean | null; safetyMargin: number | null; } /** * ABC Inventory Analysis Types */ export interface AbcItem { sku: string; annualUsage: number; unitCost: number; } export interface AbcInput { items: AbcItem[]; thresholdA?: number; thresholdB?: number; } export interface AbcClassification { sku: string; annualUsage: number; unitCost: number; annualValue: number; percentage: number; cumulative: number; rank: number; category: 'A' | 'B' | 'C'; } export interface AbcResult { items: AbcClassification[]; summary: { a: { count: number; skuPercentage: number; valuePercentage: number; }; b: { count: number; skuPercentage: number; valuePercentage: number; }; c: { count: number; skuPercentage: number; valuePercentage: number; }; }; totalItems: number; totalValue: number; } //# sourceMappingURL=types.d.ts.map