import type { NobjcObject } from "objc-js";
import type { _IOUSBHostObject } from "./IOUSBHostObject.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSNumber } from "../Foundation/NSNumber.js";
export declare class _IOUSBHostDevice extends _IOUSBHostObject {
    static alloc(): _IOUSBHostDevice;
    static new(): _IOUSBHostDevice;
    init(): _IOUSBHostDevice;
    /**
     * Creates a matching dictionary for an IOUSBHostDevice to be passed into IOServiceGetMatchingService NSNumber representation of device vendorID NSNumber representation of device productID NSNumber representation of device release number NSNumber representation of device class NSNumber representation of device subclass NSNumber representation of device 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$deviceClass$deviceSubclass$deviceProtocol$speed$productIDArray$(vendorID: _NSNumber | null, productID: _NSNumber | null, bcdDevice: _NSNumber | null, deviceClass: _NSNumber | null, deviceSubclass: _NSNumber | null, deviceProtocol: _NSNumber | null, speed: _NSNumber | null, productIDArray: _NSArray | null): NobjcObject;
    /**
     * Select a new configuration for the device This method will select a new configuration for a device. If the device was previously configured all child interfaces will be terminated prior to setting the new configuration. This method will send the SET_CONFIGURATION control request (USB 2.0 9.4.7) to the device. The interfaces will be registered for matching by default. After the completion of this call, the interfaces are not guaranteed to be immediately available. Configuration value to select If YES, any interfaces within the new configuration will be registered for matching. By default this is set to YES. YES on success, an IOReturn error code will be reported on failure.
     */
    configureWithValue$matchInterfaces$error$(value: number, matchInterfaces: boolean, error: NobjcObject | null): boolean;
    /**
     * Select a new configuration for the device This method will select a new configuration for a device. If the device was previously configured all child interfaces will be terminated prior to setting the new configuration. This method will send the SET_CONFIGURATION control request (USB 2.0 9.4.7) to the device. The interfaces will be registered for matching by default. After the completion of this call, the interfaces are not guaranteed to be immediately available. Configuration value to select YES on success, an IOReturn error code will be reported on failure.
     */
    configureWithValue$error$(value: number, error: NobjcObject | null): boolean;
    /**
     * Terminate the device and attempt to reenumerate it This function will reset and attempt to reenumerate the USB device. The current IOUSBHostDevice object and all of its children will be terminated. A new IOUSBHostDevice IOService object will be created and registered if the reset is successful and the previous object has finished terminating. The framework IOUSBHostDevice will no longer have a valid connection with IOService userclient after the call returns successfully. A new framework client will need to be created to use the re-enumerated device. YES on success, an IOReturn error code will be reported on failure.
     */
    resetWithError$(error: NobjcObject | null): boolean;
    /**
     * Return the currently selected configuration descriptor This method uses descriptorWithType to return the configuration descriptor currently selected after a successful setConfiguration call Pointer to the configuration descriptor if found, or nil if the device is not configured
     */
    configurationDescriptor(): NobjcObject | null;
}
