import EventEmitter from "node:events";
import { CpcSystemCommandId, CpcSystemStatus } from "./enums.js";
import { Transport } from "./transport.js";
import type { CpcSystemCommand, FirmwareVersionShort, PortConf } from "./types.js";
export declare enum CpcEvent {
    FAILED = "failed"
}
interface CpcEventMap {
    [CpcEvent.FAILED]: [];
}
export declare class Cpc extends EventEmitter<CpcEventMap> {
    readonly transport: Transport;
    private buffalo;
    private sequence;
    private waiter;
    constructor(portConf: PortConf);
    cpcGetVersion(): Promise<FirmwareVersionShort>;
    cpcLaunchStandaloneBootloader(): Promise<CpcSystemStatus>;
    receiveSystemUFrame(data: Buffer): void;
    sendSystemUFrame(commandId: CpcSystemCommandId, noResponse?: boolean): Promise<CpcSystemCommand | undefined>;
    start(): Promise<void>;
    stop(): Promise<void>;
    private onTransportData;
    private onTransportFailed;
    private resolveSequence;
    private waitForSequence;
}
export {};
