import { Pin } from "./pin.js"; import { ReferenceCounter } from "./utils/reference_counter.js"; import { IVia } from "./pcb/pcb_interfaces.js"; import { parseTextOrPositioning } from './pcb/component_text.js'; import type { TextOrPositioning, TextPositioning, TextWithPositioning, TextEntry, FabEntry, FabLayout } from './pcb/component_text.js'; import type { ITextPositioning } from './pcb/pcb_interfaces.js'; import { type PlacementNumber } from './placement.js'; export declare function awaitPendingInspections(): Promise; export type { TextOrPositioning, TextPositioning, TextWithPositioning, TextEntry, FabEntry, FabLayout }; export { parseTextOrPositioning }; export interface ITypeHalInfo { boardPackage?: string; driver?: string; role?: string; config?: Record; pinLookup?: Record; } export interface SourceInfo { file: string; line: number; variable?: string; params?: Record; isThis?: boolean; } export interface ComponentInit { footprint?: string; reference?: string; prefix?: string; value?: string; via?: boolean; viaData?: IVia; uuid?: string; pcb?: { x: number | PlacementNumber; y: number | PlacementNumber; rotation?: number; side?: 'front' | 'back'; }; sch?: { x: number; y: number; rotation?: number; }; simulation?: { include: boolean; model?: string; }; symbol?: string; sourceInfo?: SourceInfo; typehal?: ITypeHalInfo; datasheet?: string; description?: string; voltage?: string; wattage?: string; mpn?: string; dnp?: boolean; fab?: TextPositioning | TextWithPositioning; text?: TextEntry[]; referenceLayout?: ITextPositioning; valueLayout?: ITextPositioning; fabLayout?: FabLayout; } /** @deprecated Use `ComponentInit` instead. */ export type IComponent = ComponentInit; export declare class Component { #private; pcb: { x: number; y: number; rotation?: number; side?: 'front' | 'back'; }; dnp: boolean; via: boolean; viaData: IVia | undefined; simulation: { include: boolean; model?: string; }; sch: { x: number; y: number; rotation?: number; }; /** @internal */ groups: string[]; /** @internal */ sourceInfo?: SourceInfo; /** @internal */ typehal?: ITypeHalInfo; text: TextEntry[]; fab: FabEntry | undefined; referenceLayout: ITextPositioning | undefined; valueLayout: ITextPositioning | undefined; get fabLayout(): FabLayout | undefined; set fabLayout(value: FabLayout | undefined); /** @internal */ valueFootprint?: import('./pcb/pcb_interfaces.js').ITextPositioning; /** @internal */ pins: Pin[]; get footprint(): string; set footprint(value: string); /** * The bounding box of this component's footprint in mm, derived from * pad positions and graphical elements in the `.kicad_mod` file. * * Lazily computed on first access and cached. Returns `null` if the * footprint cannot be resolved (e.g., missing library). * * Used internally by placement functions ({@link below}, {@link above}, * {@link rightOf}, {@link leftOf}) for size-aware, edge-to-edge spacing. */ get bounds(): { width: number; height: number; } | null; get value(): string; set value(v: string); get datasheet(): string; set datasheet(v: string); get description(): string; set description(v: string); get voltage(): string; set voltage(v: string); get wattage(): string; set wattage(v: string); get mpn(): string; set mpn(v: string); get symbol(): string; set symbol(v: string); get reference(): string; set reference(value: string); set prefix(value: string); constructor(footprint: string | ComponentInit); static via(at: { x: number; y: number; }, options?: { size?: number; drill?: number; }): Component; /** @internal */ static _create(init: ComponentInit): Component; private captureSourceInfo; /** @internal */ registerReference(counter: ReferenceCounter): boolean; private getCallSiteForInstantiation; get uuid(): string; set uuid(value: string); /** @internal */ get footprintFingerprint(): string; pin(number: number | string, config?: { type?: Pin['type']; powerInfo?: import('./pcb/pcb_interfaces.js').IPinPowerInfo; }): Pin; /** @internal */ getGroups(): string[]; /** @internal */ footprint_lib(footprint: string): string; } //# sourceMappingURL=component.d.ts.map