import EventEmitter from "node:events";
export declare enum XSignal {
    /** Start of Header */
    SOH = 1,
    /** End of Transmission */
    EOT = 4,
    /** Acknowledge */
    ACK = 6,
    /** Not Acknowledge */
    NAK = 21,
    /** End of Transmission Block / File done */
    ETB = 23,
    /** Cancel */
    CAN = 24,
    /** Block OK */
    BOK = 25,
    /** 'C' */
    CRC = 67
}
export declare enum XExitStatus {
    SUCCESS = 0,
    FAIL = 1,
    CANCEL = 2
}
export declare enum XEvent {
    /** C byte received */
    START = "start",
    STOP = "stop",
    /** Data to write */
    DATA = "data"
}
interface XModemCRCEventMap {
    [XEvent.DATA]: [buffer: Buffer, progressPc: number];
    [XEvent.START]: [];
    [XEvent.STOP]: [status: XExitStatus];
}
export declare class XModemCRC extends EventEmitter<XModemCRCEventMap> {
    private blockNum;
    private blocks;
    private retries;
    private sentEOF;
    private waitForBlock;
    init(buffer: Buffer): void;
    process(recdData: Buffer): void;
    private emitBlock;
}
export {};
