import type { NobjcObject } from "objc-js";
import type { _IOUSBHostObject } from "./IOUSBHostObject.js";
import type { _IOUSBHostPipe } from "./IOUSBHostPipe.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSNumber } from "../Foundation/NSNumber.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { IOUSBHostObjectInitOptions } from "./IOUSBHostObjectInitOptions.js";
export declare class _IOUSBHostInterface extends _IOUSBHostObject {
    static alloc(): _IOUSBHostInterface;
    static new(): _IOUSBHostInterface;
    init(): _IOUSBHostInterface;
    /**
     * Creates a matching dictionary for an IOUSBHostInterface to be passed into IOServiceGetMatchingService NSNumber representation of device vendorID NSNumber representation of device productID NSNumber representation of device release number NSNumber representation of interface number NSNumber representation of the device's configurationValue NSNumber representation of interface class NSNumber representation of interface subclass NSNumber representation of interface protocol NSNumber representation of device speed NSArray of NSNumbers representing all productIDs interested in. If used do not specify the NSNumber productID field CFMutableDictionaryRef to be used with IOService matching methods. To be released by caller.
     */
    static createMatchingDictionaryWithVendorID$productID$bcdDevice$interfaceNumber$configurationValue$interfaceClass$interfaceSubclass$interfaceProtocol$speed$productIDArray$(vendorID: _NSNumber | null, productID: _NSNumber | null, bcdDevice: _NSNumber | null, interfaceNumber: _NSNumber | null, configurationValue: _NSNumber | null, interfaceClass: _NSNumber | null, interfaceSubclass: _NSNumber | null, interfaceProtocol: _NSNumber | null, speed: _NSNumber | null, productIDArray: _NSArray | null): NobjcObject;
    /**
     * Initializes IOUSBHostInterface object along with user client See IOUSBHostObject for documentation.
     */
    initWithIOService$options$queue$error$interestHandler$(ioService: NobjcObject, options: IOUSBHostObjectInitOptions, queue: _NSObject | null, error: NobjcObject | null, interestHandler: ((arg0: _IOUSBHostObject, arg1: number, arg2: NobjcObject) => void) | null): _IOUSBHostInterface | null;
    /**
     * Sets the desired idle suspend timeout for the interface Once the interface is considered idle, it will defer electrical suspend of the device for the specified duration. The amount of time after all pipes are idle to wait before suspending the device. YES on success. An IOReturn error code will be reported on failure.
     */
    setIdleTimeout$error$(idleTimeout: number, error: NobjcObject | null): boolean;
    /**
     * Select an alternate setting for this interface This method is used to select an alternate setting for the interface. All pending IO on the interface's pipes will be aborted, and the open pipes will be closed. The IOUSBHostPipe objects already created will no longer be valid. The new alternate setting will be selected via SET_INTERFACE control request (USB 2.0 9.4.10). Alternate interface number to activate YES on success, an IOReturn error code will be reported on failure.
     */
    selectAlternateSetting$error$(alternateSetting: number, error: NobjcObject | null): boolean;
    /**
     * Return the pipe whose bEndpointAddress matches address This method will return the pipe whose bEndpointAddress matches address . If the pipe is returned successfully, it will maintain a reference to the IOUSBHostInterface. Endpoint address of the pipe Pointer to an IOUSBHostPipe object or nil. The IOUSBHostPipe is to be released by the caller. An IOReturn error code will be reported on failure.
     */
    copyPipeWithAddress$error$(address: number, error: NobjcObject | null): _IOUSBHostPipe | null;
    /**
     * Retrieve the current idle suspend timeout. See The amount of time after all pipes are idle to wait before suspending the device,
     */
    idleTimeout(): number;
    /**
     * Retrieve the configuration descriptor associated with this interface IOUSBConfigurationDescriptor pointer
     */
    configurationDescriptor(): NobjcObject;
    /**
     * Retrieve the interface descriptor associated with this interface. IOUSBInterfaceDescriptor pointer
     */
    interfaceDescriptor(): NobjcObject;
}
