export type RiskCategory = 'I' | 'II' | 'III' | 'IV'; export type ExposureCategory = 'B' | 'C' | 'D'; export type RoofType = 'Gable' | 'Monoslope'; export type EnclosureClassification = 'Enclosed' | 'Partially Enclosed'; export interface BuildingDimensions { ridgeHeight: number; // hr eaveHeight: number; // he width: number; // B length: number; // L roofType: RoofType; } export interface WindParameters { basicWindSpeed: number; // V exposureCategory: ExposureCategory; riskCategory: RiskCategory; enclosureClassification: EnclosureClassification; kzt: number; ke: number; } export interface CalculationResults { // Building Geometry meanRoofHeight: number; // h roofSlope: number; // theta (degrees) zoneWidth: number; // a // Velocity Pressure qh: number; qz: number; // At mean roof height kd: number; // Directionality factor kh: number; // Exposure coefficient // Coefficients gcpi: { positive: number; negative: number; }; // Load Cases Pressures (Zones) loadCase1: ZonePressures; loadCase2: ZonePressures; loadCase3: ZonePressures; // Torsion loadCase4: ZonePressures; // Torsion // C&C ccRoofPressures: ZonePressures; ccWallPressures: ZonePressures; } export interface ZonePressures { [zone: string]: { max: number; min: number; positive: number; negative: number; gcpf: number; // For report }; }