/** * Beam Load Calculation Types */ export type LoadType = 'uniform' | 'concentrated' | 'combined'; export type BeamSupport = 'simple' | 'cantilever' | 'fixed'; export interface LoadInput { loadType: LoadType; support: BeamSupport; span: number; uniformLoad?: number; pointLoad?: number; pointPosition?: number; } export interface LoadResult { maxMoment: number; maxShear: number; maxDeflectionCoeff: number; reactionLeft: number; reactionRight: number; momentAtPoint?: number; } /** * Concrete Mix Design Types */ export type ConcreteGrade = '15' | '20' | '25' | '30' | '35' | '40'; export interface ConcreteInput { grade: ConcreteGrade; volume: number; } export interface ConcreteResult { cement: number; sand: number; gravel: number; water: number; ratio: string; } /** * Earthwork Volume Types */ export interface EarthworkInput { length: number; width: number; depth: number; swellFactor: number; shrinkFactor: number; } export interface EarthworkResult { bankVolume: number; looseVolume: number; compactedVolume: number; } /** * Formwork Area Types */ export type ElementType = 'column' | 'beam' | 'slab' | 'wall' | 'footing'; export interface FormworkInput { elementType: ElementType; length: number; width: number; height: number; quantity: number; reuses: number; } export interface FormworkResult { singleAreaSqm: number; totalAreaSqm: number; effectiveAreaSqm: number; plywoodSheets: number; } /** * Rebar Weight Calculation Types */ export type RebarSize = 'D10' | 'D13' | 'D16' | 'D19' | 'D22' | 'D25' | 'D29' | 'D32'; export interface RebarInput { size: RebarSize; length: number; quantity: number; } export interface RebarResult { unitWeight: number; totalLength: number; totalWeight: number; } /** * Slope Conversion Types */ export type SlopeUnit = 'percent' | 'degrees' | 'ratio'; export interface SlopeInput { fromUnit: SlopeUnit; value: number; } export interface SlopeResult { percent: number; degrees: number; ratio: number; risePerMeter: number; } /** * Aggregate Calculation Types */ export type AggregateType = 'gravel' | 'sand' | 'crushed_stone' | 'topsoil' | 'mulch' | 'custom'; export interface AggregateDensity { type: AggregateType; density: number; label: string; } export interface AggregateInput { length: number; width: number; depth: number; depthUnit: 'meters' | 'centimeters'; aggregateType: AggregateType; customDensity?: number; } export interface AggregateResult { volume: number; weight: number; weightTonnes: number; coverageArea: number; density: number; bags20kg: number; bags25kg: number; } /** * Brick Calculation Types */ export type BrickSize = 'modular' | 'standard' | 'queen' | 'king' | 'custom'; export interface BrickDimensions { length: number; height: number; } export interface BrickInput { wallArea: number; brickSize: BrickSize; customLength?: number; customHeight?: number; mortarThickness: number; wasteFactor: number; } export interface BrickResult { bricksPerSqMeter: number; totalBricks: number; bricksWithoutWaste: number; wastedBricks: number; } /** * PERT (Program Evaluation and Review Technique) Types */ export interface PertTask { id: string; name: string; predecessors: string[]; optimistic: number; mostLikely: number; pessimistic: number; } export interface PertInput { tasks: PertTask[]; deadline?: number; } export interface PertTaskResult { id: string; name: string; duration: number; variance: number; es: number; ef: number; ls: number; lf: number; totalFloat: number; freeFloat: number; isCritical: boolean; } export interface PertResult { tasks: PertTaskResult[]; criticalPath: string[]; projectDuration: number; projectVariance: number; projectStdDev: number; zScore?: number; completionProbability?: number; } /** * Roof Calculation Types */ export interface RoofInput { rise: number; run: number; footprintLength: number; footprintWidth: number; } export interface RoofResult { slopeRatio: string; slopeDegrees: number; slopePercent: number; rafterLength: number; slopeFactor: number; roofArea: number; pitchDescription: string; } /** * Moment of Inertia (Section Properties) Types */ export type SectionShape = 'rectangle' | 'circle' | 'hollowRectangle' | 'hollowCircle' | 'iBeam' | 'tSection' | 'cChannel'; export type MomentOfInertiaInput = { shape: 'rectangle'; width: number; height: number; } | { shape: 'circle'; diameter: number; } | { shape: 'hollowRectangle'; outerWidth: number; outerHeight: number; innerWidth: number; innerHeight: number; } | { shape: 'hollowCircle'; outerDiameter: number; innerDiameter: number; } | { shape: 'iBeam'; flangeWidth: number; totalHeight: number; webThickness: number; flangeThickness: number; } | { shape: 'tSection'; flangeWidth: number; flangeThickness: number; webThickness: number; webHeight: number; } | { shape: 'cChannel'; flangeWidth: number; totalHeight: number; webThickness: number; flangeThickness: number; }; export interface MomentOfInertiaResult { area: number; Ix: number; Iy: number; Sx: number; Sy: number; rx: number; ry: number; centroidY: number; } /** * Stair Calculation Types */ export interface StairInput { totalRise: number; totalRun: number; riserHeight?: number; } export interface StairResult { numberOfRisers: number; numberOfTreads: number; actualRiserHeight: number; treadDepth: number; stringerLength: number; twoRPlusT: number; codeCompliant: boolean; totalAngle: number; } //# sourceMappingURL=types.d.ts.map