import type { NobjcObject } from "objc-js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSet } from "../Foundation/NSSet.js";
import type { _GCDevice } from "./GCDevice.js";
import type { _GCRacingWheelInput } from "./GCRacingWheelInput.js";
export declare class _GCRacingWheel extends _NSObject {
    static alloc(): _GCRacingWheel;
    static new(): _GCRacingWheel;
    init(): _GCRacingWheel;
    /**
     * Get the collection of racing wheels currently attached to the system. GCRacingWheelDidConnectNotification GCRacingWheelDidDisconnectNotification
     */
    static connectedRacingWheels(): _NSSet;
    /**
     * A GCRacingWheel must be acquired before your application can begin receiving events from it. Prior to acquisition, your application may only query the properties of the racing wheel. Acquisition is exclusive and may fail.
     */
    acquireDeviceWithError$(error: NobjcObject | null): boolean;
    /** Releases a previous acquisition of the racing wheel. */
    relinquishDevice(): void;
    /**
     * Polls the state vector of the racing wheel and saves it to a new instance of GCRacingWheel. If your application is heavily multithreaded this may also be useful to guarantee atomicity of input handling as a snapshot will not change based on user input once it is taken. snapshot A new racing wheel with the duplicated state vector of the receiver.
     */
    capture(): _GCRacingWheel;
    /**
     * Checks if the racing wheel has been acquired by the application. This property is observable.
     */
    acquired(): boolean;
    /** Get the physical input profile for the racing wheel. */
    wheelInput(): _GCRacingWheelInput;
    /**
     * A GCRacingWheel may represent a real device managed by the operating system, or a snapshot created by the developer. capture
     */
    snapshot(): boolean;
}
export interface _GCRacingWheel extends _GCDevice {
}
