import { type Component } from "../component.js"; import type { SExpr } from '../sexpr/types.js'; import type { IPcbOptions, IGrLine, IGrCircle, IGrRect, IGrPoly, IOutline, IGrTextOptions, IFilledZone, IKeepoutZone, IAutorouteResult } from './pcb_interfaces.js'; export declare class PcbInternalState { offsetStack: { x: number; y: number; }[]; currentOffset: { x: number; y: number; }; pcb: string; components: Component[]; stagedComponents: Component[]; groups: string[]; outlines: IOutline[]; stagedOutlines: IOutline[]; readonly options: IPcbOptions; existingBoardElements: SExpr[]; grTexts: IGrTextOptions[]; zones: IFilledZone[]; keepoutZones: IKeepoutZone[]; grLines: IGrLine[]; grCircles: IGrCircle[]; grRects: IGrRect[]; grPolys: IGrPoly[]; pendingAutoroutes: Set>; constructor(options: IPcbOptions); pushOffset(x: number, y: number): void; popOffset(): void; getOffset(): { x: number; y: number; }; /** * Computes the bounding box of all board outlines (line and arc elements) * across both `outlines` and `stagedOutlines`. Used by {@link board} * to determine the board's physical extent. * * @returns `{ minX, minY, maxX, maxY }` in mm, or `null` if no outlines exist. */ getOutlineBounds(): { minX: number; minY: number; maxX: number; maxY: number; } | null; } //# sourceMappingURL=pcb_state.d.ts.map