/** * Net validation — wire-name and topology validation rules. * * Implements 17 validation rules that operate on {@link NetValidationInput} * and produce structured {@link NetValidationIssue}s. * * Rules: * 1. Floating net (zero nodes) * 2. Duplicate net names * 3. Accidental short (same device pin on different nets) * 4. Missing power net * 5. Missing ground net * 6. Missing hierarchical port * 7. Unconnected required pin * 8. Inconsistent cross-sheet interface pins * 9. Naming convention violation (domain mismatch) * 10. Protected AC/high-voltage domain naming * * @module */ import { NetValidationResult } from './errors.js'; import type { NetValidationInput } from './schema.js'; /** * Run all net validation rules against an input net list. * * Orchestrates 10 rules: * 1. Floating nets — error if net has zero nodes * 2. Duplicate names — error if multiple nets share a name * 3. Accidental shorts — error if one device pin belongs to multiple nets * 4. Missing power — error if no type=power net + warnings for specific names * 5. Missing ground — error if no type=ground net + warnings for specific names * 6. Missing hierarchical port — error if interface references an unknown net * 7. Unconnected required pins — warning if a device has zero connections * 8. Cross-sheet consistency — error if same-name interfaces have different pinouts * 9. Naming convention — warning if power/ground nets have non-standard names * 10. Protected domain — error if high-voltage net lacks protective naming * 11. Output contention — error if multiple active outputs drive one signal * 12. Floating input — warning if input net has no driver or pull * 13. Power conflict — error if multiple sources drive one rail * 14. Passive-only signal — warning if a signal net has only passive nodes * 15. Required power pins — error if required pins are missing/miswired * 16. Decoupling expectation — warning if required local decoupling is absent * 17. Voltage mismatch — error if expected pin voltage conflicts with net voltage */ export declare function validateNets(input: NetValidationInput): NetValidationResult; /** * Validate nets and throw on the first error. * * Returns the full result on success. Throws the first `NetValidationIssue` * found (as an error) if validation fails. */ export declare function validateNetsOrThrow(input: NetValidationInput): NetValidationResult;