/** * IPC-2221 conductor current-carrying capacity. * * Formula (IPC-2221, formerly MIL-STD-275, the widely-cited empirical curve fit): * * I = k · ΔT^0.44 · A^0.725 * * where `I` is current in amps, `ΔT` is the allowed temperature rise in °C, `A` is * conductor cross-sectional area in mils², and `k` is 0.048 for external (outer * layer) conductors or 0.024 for internal conductors. * * This is an estimate, not a certified value: the curve does not model adjacent-trace * heating, via/plane proximity, forced airflow, or altitude. IPC-2152 supersedes * IPC-2221 with more conservative guidance for dense modern boards. Verify against * your fabricator's process and cross-check with IPC-2152 for safety-critical or * high-reliability current paths. * * @module */ export type ConductorLayer = 'external' | 'internal'; /** Standard copper thickness in mils per oz/ft² of copper weight (1oz ≈ 1.378 mils / 34.8 µm). */ export declare const COPPER_THICKNESS_MILS_PER_OZ = 1.378; export interface TraceWidthInput { /** Required current-carrying capacity, in amps. */ currentA: number; /** Allowed conductor temperature rise above ambient, in °C. */ temperatureRiseC: number; /** Whether the trace is on an external (outer) or internal layer. */ layer: ConductorLayer; /** Copper weight in oz/ft² (e.g. 1, 2, 0.5). */ copperWeightOz: number; } export interface TraceWidthResult { requiredAreaMils2: number; copperThicknessMils: number; traceWidthMils: number; traceWidthMm: number; k: number; source: string; caveat: string; } /** Compute the minimum trace width for a given current, temperature rise, layer, and copper weight. */ export declare function calculateTraceWidth(input: TraceWidthInput): TraceWidthResult; export interface MaxCurrentInput { /** Trace width in mils. */ traceWidthMils: number; /** Allowed conductor temperature rise above ambient, in °C. */ temperatureRiseC: number; layer: ConductorLayer; copperWeightOz: number; } export interface MaxCurrentResult { maxCurrentA: number; source: string; caveat: string; } /** Reverse lookup: the maximum current a given trace width can carry under the same model. */ export declare function calculateMaxCurrent(input: MaxCurrentInput): MaxCurrentResult;