import type { NobjcObject } from "objc-js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _IOUSBHostControllerInterface } from "./IOUSBHostControllerInterface.js";
export declare class _IOUSBHostCIDeviceStateMachine extends _NSObject {
    static alloc(): _IOUSBHostCIDeviceStateMachine;
    static new(): _IOUSBHostCIDeviceStateMachine;
    init(): _IOUSBHostCIDeviceStateMachine;
    /**
     * Initializes an IOUSBHostCIDeviceStateMachine object The IOUSBHostCIDeviceStateMachine defaults to the IOUSBHostCIDeviceStateActive state. IOUSBHostControllerInterface which will be used to send command responses. IOUSBHostCIMessage with type IOUSBHostCIMessageTypeDeviceCreate IOUSBHostCIDeviceStateMachine instance, to be released by the caller.
     */
    initWithInterface$command$error$(interface_: _IOUSBHostControllerInterface, command: NobjcObject, error: NobjcObject | null): _IOUSBHostCIDeviceStateMachine | null;
    /**
     * Inspect an IOUSBHostCIMessage command The IOUSBHostCIMessage command is inspected to determine if it is handled by the state machine, and is appropriate for the current state. IOUSBHostCIMessage command structure received from the kernel driver. BOOL YES if the command is targeting a controller, and can be handled in the current state BOOL NO if the command does not target a controller, or cannot be handled in the current state
     */
    inspectCommand$error$(command: NobjcObject, error: NobjcObject | null): boolean;
    /**
     * Advance the state machine and respond to an IOUSBHostCIMessage command If the command passes inspectCommand and the client indicates the command was processed successfully, the state machine is advanced, and a properly formatted command response message is sent to the kernel driver. If the client indicates the command was not processed successfully, the state machine is not advanced but a properly formatted command response message is sent to the kernel driver. IOUSBHostCIMessage command structure received from the kernel driver. IOUSBHostCIMessageStatus reported by the user-mode USB host controller implementation for the command response. BOOL YES if the command response was sent to the kernel driver BOOL NO if the command response was not sent to the kernel driver
     */
    respondToCommand$status$error$(command: NobjcObject, status: NobjcObject, error: NobjcObject | null): boolean;
    /**
     * Advance the state machine and respond to an IOUSBHostCIMessageTypeDeviceCreate command If the command passes inspectCommand and the client indicates the command was processed successfully, the state machine is advanced, and a properly formatted command response message is sent to the kernel driver. If the client indicates the command was not processed successfully, the state machine is not advanced but a properly formatted command response message is sent to the kernel driver. IOUSBHostCIMessage command structure received from the kernel driver. The Type field must be IOUSBHostCIMessageTypeDeviceCreate IOUSBHostCIMessageStatus reported by the user-mode USB host controller implementation for the command response. NSUInteger used only when responding to the initial IOUSBHostCIMessageTypeDeviceCreate command, containing a valid USB device address successfully assigned to the device. BOOL YES if the command response was sent to the kernel driver BOOL NO if the command response was not sent to the kernel driver
     */
    respondToCommand$status$deviceAddress$error$(command: NobjcObject, status: NobjcObject, deviceAddress: number, error: NobjcObject | null): boolean;
    deviceState(): NobjcObject;
    completeRoute(): number;
    deviceAddress(): number;
    controllerInterface(): _IOUSBHostControllerInterface;
}
