import { NormalizedRoutingOptions } from "./types.js"; /** * Common context describing where a clearance query is being evaluated. * Coordinates are expressed in grid units to avoid repeated conversions. */ export interface TraceClearanceContext { gridX: number; gridY: number; start?: { gridX: number; gridY: number; }; end?: { gridX: number; gridY: number; }; } export interface ClearanceProfileConfig { options: NormalizedRoutingOptions; /** * Diameter of a via used for clearance checks (mm). * Historically a constant but now configurable for consistency. */ viaDiameter: number; /** Grid resolution (mm per cell). Needed for derived padding. */ gridResolution: number; } /** * Central authority for every clearance calculation in the router. * All call sites should consume this helper rather than rolling their own * arithmetic so that design-rule tweaks happen in a single location. */ export declare class ClearanceProfile { private readonly traceClearance; private readonly viaClearance; private readonly viaDiameter; private readonly viaRadius; private readonly gridResolution; private readonly safetyPad; constructor(config: ClearanceProfileConfig); /** * Minimum spacing used when probing occupancy for trace movement. * Context is currently unused but retained for future adaptive logic. */ getTraceClearance(_context?: TraceClearanceContext): number; /** * Keepout radius for placing vias, accounting for the physical via radius, * desired clearance, and a grid-resolution-sized safety pad. */ getViaKeepoutRadius(): number; /** Clearance radius for pad adjacency checks when routing traces. */ getPadClearanceRadius(): number; /** Expose via diameter so path-length heuristics stay consistent. */ getViaDiameter(): number; } //# sourceMappingURL=clearance_profile.d.ts.map