import { Transport } from "./webserial.js"; /** * Set of reset functions for ESP Loader connection. * @interface ResetConstructors */ export interface ResetConstructors { /** * Execute a classic set of commands that will reset the chip. * @param transport Transport class to perform serial communication. * @param resetDelay Delay in milliseconds for reset. */ classicReset?: (transport: Transport, resetDelay: number) => ClassicReset; /** * Execute a set of commands for USB JTAG serial reset. * @param transport Transport class to perform serial communication. */ usbJTAGSerialReset?: (transport: Transport) => UsbJtagSerialReset; /** * Execute a classic set of commands that will reset the chip. * @param transport Transport class to perform serial communication. * @param {boolean} usingUsbOtg is it using USB-OTG ? */ hardReset?: (transport: Transport, usingUsbOtg?: boolean) => HardReset; /** * Execute a custom set of commands that will reset the chip. * @param transport Transport class to perform serial communication. * @param {string} sequenceString Custom string sequence for reset strategy */ customReset?: (transport: Transport, sequenceString: string) => CustomReset; } /** * Reset strategy class */ export interface ResetStrategy { transport: Transport; reset(): Promise; } /** * Execute a classic set of commands that will reset the chip. * * Commands (e.g. R0) are defined by a code (R) and an argument (0). * * The commands are: * * D: setDTR - 1=True / 0=False * * R: setRTS - 1=True / 0=False * * W: Wait (time delay) - positive integer number (miliseconds) * * "D0|R1|W100|D1|R0|W50|D0" represents the classic reset strategy * @param {Transport} transport Transport class to perform serial communication. * @param {number} resetDelay Delay in milliseconds for reset. */ export declare class ClassicReset implements ResetStrategy { resetDelay: number; transport: Transport; constructor(transport: Transport, resetDelay: number); reset(): Promise; } /** * Execute a set of commands for USB JTAG serial reset. * * Commands (e.g. R0) are defined by a code (R) and an argument (0). * * The commands are: * * D: setDTR - 1=True / 0=False * * R: setRTS - 1=True / 0=False * * W: Wait (time delay) - positive integer number (miliseconds) * @param {Transport} transport Transport class to perform serial communication. */ export declare class UsbJtagSerialReset implements ResetStrategy { transport: Transport; constructor(transport: Transport); reset(): Promise; } /** * Execute a set of commands that will hard reset the chip. * * Commands (e.g. R0) are defined by a code (R) and an argument (0). * * The commands are: * * D: setDTR - 1=True / 0=False * * R: setRTS - 1=True / 0=False * * W: Wait (time delay) - positive integer number (miliseconds) * @param {Transport} transport Transport class to perform serial communication. * @param {boolean} usingUsbOtg is it using USB-OTG ? */ export declare class HardReset implements ResetStrategy { transport: Transport; private usingUsbOtg; constructor(transport: Transport, usingUsbOtg?: boolean); reset(): Promise; } /** * Validate a sequence string based on the following format: * * Commands (e.g. R0) are defined by a code (R) and an argument (0). * * The commands are: * * D: setDTR - 1=True / 0=False * * R: setRTS - 1=True / 0=False * * W: Wait (time delay) - positive integer number (miliseconds) * @param {string} seqStr Sequence string to validate * @returns {boolean} Is the sequence string valid ? */ export declare function validateCustomResetStringSequence(seqStr: string): boolean; /** * Custom reset strategy defined with a string. * * The sequenceString input string consists of individual commands divided by "|". * * Commands (e.g. R0) are defined by a code (R) and an argument (0). * * The commands are: * * D: setDTR - 1=True / 0=False * * R: setRTS - 1=True / 0=False * * W: Wait (time delay) - positive integer number (miliseconds) * * "D0|R1|W100|D1|R0|W50|D0" represents the classic reset strategy * @param {Transport} transport Transport class to perform serial communication. * @param {string} sequenceString Custom string sequence for reset strategy */ export declare class CustomReset implements ResetStrategy { transport: Transport; private sequenceString; constructor(transport: Transport, sequenceString: string); reset(): Promise; } declare const _default: { ClassicReset: typeof ClassicReset; CustomReset: typeof CustomReset; HardReset: typeof HardReset; UsbJtagSerialReset: typeof UsbJtagSerialReset; validateCustomResetStringSequence: typeof validateCustomResetStringSequence; }; export default _default;