import { decodeValue, SvdDevice, SvdPeripheral, SvdRegister, DecodedField } from "./parser"; export { decodeValue }; export type { SvdDevice, SvdPeripheral, SvdRegister, DecodedField }; /** * Lazily-loaded SVD for the connected target. * * Parsing costs about 100 ms and a few megabytes of transient strings, so it * happens on first use rather than at startup — a session that never asks * about peripherals should not pay for one. * * Deliberately holds no probe reference. This class answers "what does this * address mean"; reading it is somebody else's job. Keeping those apart means * the decode logic is testable without hardware, which is the only reason the * address arithmetic could be verified against the DK before any of it shipped. */ export declare class SvdRegistry { private device; private loadError; private readonly path; constructor(svdPath?: string); get configured(): boolean; /** Human-readable reason the registry cannot answer, or null if it can. */ unavailableReason(): string | null; private load; getDevice(): SvdDevice | null; /** Peripherals, optionally filtered by a case-insensitive substring. */ listPeripherals(filter?: string): SvdPeripheral[]; findPeripheral(name: string): SvdPeripheral | undefined; /** * Resolve a register by peripheral and name. * * Clustered registers carry a dotted path (`INFO.PART`), and callers should * not have to know whether a given register happens to sit in a cluster — * so a bare `PART` matches `INFO.PART` when it is unambiguous. */ findRegister(peripheral: string, register: string): SvdRegister | undefined; /** Suggest register names when a lookup misses — a miss is usually a typo. */ suggestRegisters(peripheral: string, register: string, limit?: number): string[]; } /** Render decoded fields compactly, one per line. */ export declare function formatDecoded(reg: SvdRegister, value: number, fields: DecodedField[]): string; //# sourceMappingURL=index.d.ts.map