/// <reference types="node" />
/// <reference types="node" />
import { Duplex } from 'stream';
import { usb } from 'usb';
import { Interface } from 'usb/dist/usb/interface';
import { InEndpoint, OutEndpoint } from 'usb/dist/usb/endpoint';
interface DeviceConfig {
    interface: number;
    configuration: number;
    writeEndpoint: number;
    readEndpoint: number;
    name: string;
}
export default class USBSerialDevice extends Duplex {
    private device;
    private intf;
    private readEndpoint;
    private writeEndpoint;
    private transfers;
    constructor(device: usb.Device, intf: Interface, readEndpoint: InEndpoint, writeEndpoint: OutEndpoint);
    static create(device: usb.Device, config: DeviceConfig): Promise<USBSerialDevice>;
    static list(): Promise<{
        opened: boolean;
        name: string;
        connect: () => Promise<Duplex>;
    }[]>;
    private cleanup;
    private handleDisconnect;
    _read(size: number): void;
    _write(chunk: Buffer, encoding: unknown, callback: (err?: Error) => void): void;
}
export {};
//# sourceMappingURL=USBSerialDevice.d.ts.map