export type PlateShape = 'rectangular' | 'circular'; export type ColumnType = 'I-Shape' | 'HSS-Rect' | 'HSS-Round' | 'User-Defined'; export type AnalysisMethod = 'Strain Compatibility' | 'Elastic'; export interface Loads { P: number; // Axial (kips) Mx: number; // Moment about X (k-ft) Mz: number; // Moment about Z (k-ft) Vx: number; // Shear X (kips) Vz: number; // Shear Z (kips) } export interface Geometry { plateShape: PlateShape; // Rectangular widthZ: number; // in lengthX: number; // in // Circular diameter: number; // in thickness: number; // in columnProfile: ColumnType; columnDetails: { designation: string; // e.g., "W10x49" d: number; // Depth bf: number; // Flange width tf: number; // Flange thickness tw: number; // Web thickness }; support: { widthWp1: number; // in widthWp2: number; // in lengthLp1: number; // in lengthLp2: number; // in groutThickness: number; // in }; } export interface Anchorage { count: number; diameter: number; // in material: string; // e.g., "F1554-36" layout: 'matrix' | 'circular'; edgeDistance: number; // in // Embedment details hef: number; // Embedment depth (in) reinforcement: 'None' | 'Supplementary' | 'Anchor'; } export interface Materials { fc: number; // Concrete strength (ksi) fy_rebar: number; // Rebar strength (ksi) fy_plate: number; // Plate strength (ksi) seismic: boolean; analysisMethod: AnalysisMethod; } export interface DesignState { loads: Loads; geometry: Geometry; anchorage: Anchorage; materials: Materials; // Actions setLoads: (loads: Partial) => void; setGeometry: (geometry: Partial) => void; setAnchorage: (anchorage: Partial) => void; setMaterials: (materials: Partial) => void; }