import { UsbmuxCandidate, getBulkEndpoints } from './webusb'; export type UsbmuxSession = { device: USBDevice; candidate: UsbmuxCandidate; inEndpoint: ReturnType['inEndpoint']; outEndpoint: ReturnType['outEndpoint']; muxVersion: number; txSeq: number; rxSeq: number; nextSport: number; streams: Map; writeChain: Promise; closed: boolean; }; export type UsbmuxStream = { session: UsbmuxSession; sport: number; dport: number; seq: number; ack: number; queue: Uint8Array[]; waiters: Array<(value: Uint8Array) => void>; error?: Error; opened: Promise; resolveOpened: () => void; rejectOpened: (error: Error) => void; }; export declare function createUsbmuxSession(device: USBDevice, candidate: UsbmuxCandidate): Promise; export declare function openStream(session: UsbmuxSession, port: number): Promise; export declare function sendStreamData(stream: UsbmuxStream, bytes: Uint8Array): Promise; export declare function receiveStreamData(stream: UsbmuxStream): Promise>; export declare function closeUsbmuxSession(session: UsbmuxSession): void;