/** * Batch Scaling Types */ export interface BatchIngredient { name: string; amount: number; unit: string; } export interface BatchInput { originalBatchSize: number; targetBatchSize: number; ingredients: BatchIngredient[]; } export interface ScaledIngredient { name: string; originalAmount: number; scaledAmount: number; unit: string; } export interface BatchResult { scaleFactor: number; scaledIngredients: ScaledIngredient[]; } /** * Concentration Conversion Types */ export type ConcentrationUnit = 'molPerL' | 'wtPercent' | 'ppm'; export interface ConcentrationInput { fromUnit: ConcentrationUnit; value: number; molecularWeight: number; solutionDensity: number; } export interface ConcentrationResult { molPerL: number; wtPercent: number; ppm: number; } /** * Dilution Calculator Types */ export type DilutionSolveFor = 'c2' | 'v2' | 'c1' | 'v1'; export type DilutionInput = { solveFor: 'c1'; v1: number; c2: number; v2: number; } | { solveFor: 'v1'; c1: number; c2: number; v2: number; } | { solveFor: 'c2'; c1: number; v1: number; v2: number; } | { solveFor: 'v2'; c1: number; v1: number; c2: number; }; export interface DilutionResult { c1: number; v1: number; c2: number; v2: number; solventToAdd: number; } /** * pH Buffer Calculator Types */ export type BufferSystem = 'acetate' | 'phosphate' | 'tris' | 'citrate' | 'carbonate' | 'custom'; export interface PhInput { bufferSystem: BufferSystem; acidConcentration: number; baseConcentration: number; temperature: number; customPka?: number; } export interface PhResult { pH: number; pKa: number; bufferCapacity: number; effectiveRange: { min: number; max: number; }; } /** * Reactor Volume Calculator Types */ export type ReactorShape = 'cylindrical' | 'spherical'; interface ReactorBase { diameter: number; fillRatio: number; agitatorType?: 'none' | 'anchor' | 'turbine' | 'propeller'; } export type ReactorInput = ReactorBase & ({ shape: 'cylindrical'; height: number; } | { shape: 'spherical'; }); export interface ReactorResult { totalVolume: number; workingVolume: number; totalVolumeLiters: number; workingVolumeLiters: number; surfaceArea: number; volumeToSurfaceRatio: number; } /** * Heat Transfer Calculator Types */ export type HeatTransferMode = 'conduction' | 'convection' | 'radiation'; export type HeatTransferInput = { mode: 'conduction'; conductivity: number; area: number; thickness: number; tempHot: number; tempCold: number; } | { mode: 'convection'; coefficient: number; area: number; tempSurface: number; tempFluid: number; } | { mode: 'radiation'; emissivity: number; area: number; tempHot: number; tempCold: number; }; export interface HeatTransferResult { heatRate: number; heatFluxDensity: number; tempDifference: number; thermalResistance: number; } /** * Pipe Flow Calculator Types (Darcy-Weisbach + Swamee-Jain) */ export type PipeMaterial = 'commercialSteel' | 'stainlessSteel' | 'castIron' | 'copper' | 'pvc' | 'concrete' | 'galvanizedSteel' | 'custom'; export interface PipeFlowInput { flowRate: number; pipeDiameter: number; pipeLength: number; pipeMaterial: PipeMaterial; fluidDensity: number; fluidViscosity: number; customRoughness?: number; } export interface PipeFlowResult { velocity: number; reynoldsNumber: number; flowRegime: 'laminar' | 'transitional' | 'turbulent'; frictionFactor: number; pressureDrop: number; pressureDropKpa: number; pressureDropBar: number; headLoss: number; } /** * Shelf Life Calculator Types */ export interface ShelfLifeInput { shelfLifeAtRef: number; refTemp: number; targetTemp: number; q10: number; } export interface ShelfLifeResult { estimatedShelfLife: number; accelerationFactor: number; refTemp: number; targetTemp: number; tempDifference: number; } /** * Injection Molding Cycle Time Types */ export type ResinType = 'abs' | 'pp' | 'pc' | 'pa' | 'pmma' | 'pet' | 'pom' | 'ps' | 'custom'; export interface InjectionCycleInput { resin: ResinType; wallThickness: number; shotWeight: number; injectionRate?: number; moldOpenCloseTime?: number; ejectionTime?: number; thermalDiffusivity?: number; meltTemp?: number; moldTemp?: number; ejectionTemp?: number; density?: number; } export interface InjectionCyclePhase { phase: string; time: number; percentage: number; } export interface InjectionCycleResult { coolingTime: number; fillTime: number; packingTime: number; moldOpenClose: number; ejectionTime: number; totalCycleTime: number; partsPerHour: number; breakdown: InjectionCyclePhase[]; } /** * Control Valve Cv Calculator Types */ export interface FlowControlInput { flowRate: number; inletPressure: number; outletPressure: number; fluidDensity: number; fluidType: 'liquid' | 'gas' | 'steam'; temperature?: number; molecularWeight?: number; specificHeatRatio?: number; } export interface FlowControlResult { cv: number; kv: number; pressureDrop: number; pressureRatio: number; isChoked: boolean; velocity: number; } /** * Relief Valve Sizing Types — API 520 */ export interface ReliefValveInput { requiredCapacity: number; setPressure: number; backPressure: number; temperature: number; fluidType: 'liquid' | 'gas' | 'steam'; molecularWeight?: number; specificGravity?: number; overpressure?: number; dischargeCoefficient?: number; } export interface ReliefValveResult { requiredArea: number; selectedOrifice: string; orificeArea: number; relievingPressure: number; capacityAtOrifice: number; percentUtilized: number; orificeExceedsMax: boolean; suggestedMinValves: number; } /** * PID Tuning Types — Ziegler-Nichols / Cohen-Coon */ export interface PidInput { method: 'ziegler-nichols-step' | 'ziegler-nichols-ultimate' | 'cohen-coon'; processGain?: number; deadTime?: number; timeConstant?: number; ultimateGain?: number; ultimatePeriod?: number; controllerType: 'P' | 'PI' | 'PID'; } export interface PidResult { kp: number; ki: number; kd: number; ti: number; td: number; method: string; } export {}; //# sourceMappingURL=types.d.ts.map