import type { Buffer } from 'node:buffer';
/**
 * @category Adapters
 */
export type MinimalDeviceInfo = {
    product?: string | undefined;
    serialNumber?: string;
    vendorId: number;
    productId: number;
    manufacturer?: string;
    release: number;
};
/**
 * @summary Abstract class representing a USB transport layer.
 * @remarks This class can be extended by users to implement custom USB transport mechanisms. MQTT? Bluetooth? Whatever you want!
 * @category Adapters
 */
export declare abstract class UsbTransport {
    abstract sendFeatureReport(data: Buffer): Promise<number>;
    abstract getFeatureReport(reportId: number, reportLength: number): Promise<Buffer>;
    abstract getDeviceInfo(): MinimalDeviceInfo;
    abstract close(): Promise<unknown>;
}
//# sourceMappingURL=usb-transport.d.ts.map