import { JDBus } from "./bus"; import { JDEventSource } from "./eventsource"; /** * UF2 page data structure * @category Firmware * @internal */ export interface FirmwarePage { data: Uint8Array; targetAddress: number; } /** * Data structure representing a firmware binary * @category Firmware * @internal */ export interface FirmwareBlob { pages: FirmwarePage[]; productIdentifier: number; pageSize: number; name: string; version: string; store: string; } export declare class FirmwareUpdater extends JDEventSource { readonly bus: JDBus; readonly blob: FirmwareBlob; constructor(bus: JDBus, blob: FirmwareBlob); /** * Flash firmware blob onto device * @param bus * @param blob * @param updateCandidates * @param ignoreFirmwareCheck * @param progress * @returns * @category Firmware */ flash(updateCandidates: FirmwareInfo[], ignoreFirmwareCheck: boolean): Promise; } /** * Parses a UF2 firmware binary into firmware blobs * @param uf2 * @param store * @returns * @category Firmware */ export declare function parseUF2Firmware(uf2: Uint8Array, store: string): FirmwareBlob[]; /** * Firmware information * @internal */ export interface FirmwareInfo { deviceId: string; version: string; name: string; productIdentifier: number; bootloaderProductIdentifier: number; } /** * Parse a UF2 firmware file and extracts firmware blobs * @param blob * @param store * @returns * @category Firmware */ export declare function parseFirmwareFile(blob: Blob, store?: string): Promise; /** * Indicates if a firmware blob is applicated to the device information * @param dev * @param blob * @returns * @category Firmware */ export declare function updateApplicable(dev: FirmwareInfo, blob: FirmwareBlob): boolean; /** * This command can be sent every 50ms to keep devices in bootloader mode * @param bus * @category Firmware */ export declare function sendStayInBootloaderCommand(bus: JDBus): Promise; //# sourceMappingURL=flashing.d.ts.map