import type { NobjcObject } from "objc-js";
import type { _IOUSBHostIOSource } from "./IOUSBHostIOSource.js";
import type { _IOUSBHostPipe } from "./IOUSBHostPipe.js";
import type { _NSMutableData } from "../Foundation/NSMutableData.js";
import type { IOUSBHostAbortOption } from "./IOUSBHostAbortOption.js";
export declare class _IOUSBHostStream extends _IOUSBHostIOSource {
    static alloc(): _IOUSBHostStream;
    static new(): _IOUSBHostStream;
    init(): _IOUSBHostStream;
    /**
     * @brief Abort pending I/O requests. @discussion A stream context must be set as non-active on the device via an out-of-band (class-defined) mechanism before this method is called (USB 3.1 8.12.1.4). A non-active stream will not be selected by the device to become the current stream on the endpoint. @param option IOUSBHostAbortOption by default IOUSBHostAbortOptionSynchronous is used @return YES on success, an IOReturn error code will be reported on failure
     */
    abortWithOption$error$(option: IOUSBHostAbortOption, error: NobjcObject | null): boolean;
    /**
     * @brief Abort pending I/O requests. @discussion A stream context must be set as non-active on the device via an out-of-band (class-defined) mechanism before this method is called (USB 3.1 8.12.1.4). A non-active stream will not be selected by the device to become the current stream on the endpoint. @return YES on success, an IOReturn error code will be reported on failure
     */
    abortWithError$(error: NobjcObject | null): boolean;
    /**
     * @brief Send an IO request on the source @discussion This method will send a synchronous request on the IO source, and will not return until the request is complete. CompletionTimeouts are not applicable to streams. @param data NSData* pointer containing the buffer to use for the transfer @param bytesTransferred NSUInteger reference which will be updated with the bytes transferred during the request @return YES on success, an IOReturn error code will be reported on failure
     */
    sendIORequestWithData$bytesTransferred$error$(data: _NSMutableData | null, bytesTransferred: NobjcObject | null, error: NobjcObject | null): boolean;
    /**
     * @brief Enqueue an IO request on the source @discussion This method is used to issue an asynchronous I/O request on the IO source. CompletionTimeouts are not applicable to streams. @param data pointer containing the buffer to use for the transfer @return YES on success, an IOReturn error code will be reported on failure
     */
    enqueueIORequestWithData$error$completionHandler$(data: _NSMutableData | null, error: NobjcObject | null, completionHandler: ((arg0: number, arg1: number) => void) | null): boolean;
    /**
     * @brief Returns the IOUSBHostPipe this stream was created from @return IOUSBHostPipe pointer
     */
    hostPipe(): _IOUSBHostPipe;
    /** @brief Returns streamID associated with this IOUSBHostStream. @return streamID */
    streamID(): number;
}
