import { HIDProvider } from "./hid_provider";
/** Parsed firmware version in major.minor.patch format */
export interface FirmwareVersion {
    major: number;
    minor: number;
    patch: number;
}
/** Firmware and hardware information from Feature Report 0x20 */
export interface FirmwareInfo {
    /** Firmware build date (e.g. "Apr 14 2023") */
    buildDate: string;
    /** Firmware build time (e.g. "12:34:56") */
    buildTime: string;
    /** Firmware type (2 or 3 indicates production firmware) */
    firmwareType: number;
    /** Software series identifier */
    softwareSeries: number;
    /** Hardware info word (lower 16 bits used for feature gating) */
    hardwareInfo: number;
    /** Main firmware version */
    mainFirmwareVersion: FirmwareVersion;
    /** Raw uint32 main firmware version (used for feature gating) */
    mainFirmwareVersionRaw: number;
    /** Device info (raw hex string) */
    deviceInfo: string;
    /** Update version (formatted as HH.LL hex) */
    updateVersion: string;
    /** Update image info */
    updateImageInfo: number;
    /** SBL (second bootloader) firmware version */
    sblFirmwareVersion: FirmwareVersion;
    /** DSP firmware version (formatted as HHHH_LLLL hex) */
    dspFirmwareVersion: string;
    /** Spider DSP firmware version */
    spiderDspFirmwareVersion: FirmwareVersion;
}
/** Default FirmwareInfo used when Feature Report 0x20 could not be read */
export declare const DefaultFirmwareInfo: FirmwareInfo;
/** Format a FirmwareVersion as "major.minor.patch" */
export declare function formatFirmwareVersion(v: FirmwareVersion): string;
/**
 * Read and parse Feature Report 0x20 from a connected controller.
 * Returns undefined if the report cannot be read.
 */
export declare function readFirmwareInfo(provider: HIDProvider): Promise<FirmwareInfo | undefined>;
//# sourceMappingURL=firmware_info.d.ts.map