import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSOperationQueue } from "../Foundation/NSOperationQueue.js";
import type { _CMDeviceMotion } from "./CMDeviceMotion.js";
import type { _CMHeadphoneMotionManagerDelegate } from "./CMHeadphoneMotionManagerDelegate.js";
import type { CMAuthorizationStatus } from "./CMAuthorizationStatus.js";
export declare class _CMHeadphoneMotionManager extends _NSObject {
    static alloc(): _CMHeadphoneMotionManager;
    static new(): _CMHeadphoneMotionManager;
    init(): _CMHeadphoneMotionManager;
    /**
     * authorizationStatus Discussion: Returns the current authorization status for headphone motion.
     */
    static authorizationStatus(): CMAuthorizationStatus;
    /**
     * startDeviceMotionUpdates Discussion: Starts device motion updates with no handler. To receive the latest device motion data when desired, examine the deviceMotion property.
     */
    startDeviceMotionUpdates(): void;
    /**
     * startDeviceMotionUpdatesToQueue:withHandler: Discussion: Starts device motion updates, providing data to the given handler through the given queue.
     */
    startDeviceMotionUpdatesToQueue$withHandler$(queue: _NSOperationQueue, handler: (arg0: _CMDeviceMotion, arg1: _NSError) => void): void;
    /** stopDeviceMotionUpdates Discussion: Stops device motion updates. */
    stopDeviceMotionUpdates(): void;
    /**
     * startConnectionStatusUpdates Discussion: Starts event updates to the delegate object. This can be used to register for delegate updates before requesting device motion data.
     */
    startConnectionStatusUpdates(): void;
    /**
     * stopConnectionStatusUpdates Discussion: Stops connection status updates to the delegate object. This only applies if startConnectionStatusUpdates was called.
     */
    stopConnectionStatusUpdates(): void;
    /** delegate Discussion: The delegate object to receive motion manager events. */
    delegate(): _CMHeadphoneMotionManagerDelegate | null;
    setDelegate$(value: _CMHeadphoneMotionManagerDelegate | null): void;
    /**
     * connectionStatusActive Discussion: Determines whether the CMHeadphoneMotionManager is currently providing connection updates to the delegate.
     */
    connectionStatusActive(): boolean;
    /**
     * deviceMotionAvailable Discussion: Determines whether device motion is available.
     */
    deviceMotionAvailable(): boolean;
    /**
     * deviceMotionActive Discussion: Determines whether the CMHeadphoneMotionManager is currently providing device motion updates.
     */
    deviceMotionActive(): boolean;
    /**
     * deviceMotion Discussion: Returns the latest sample of device motion data, or nil if none is available.
     */
    deviceMotion(): _CMDeviceMotion | null;
}
