import type { _NSObject } from "../Foundation/NSObject.js";
import type { _AVCaptureDevice } from "./AVCaptureDevice.js";
import type { _AVCaptureExternalDisplayConfiguration } from "./AVCaptureExternalDisplayConfiguration.js";
import type { _CALayer } from "../QuartzCore/CALayer.js";
export declare class _AVCaptureExternalDisplayConfigurator extends _NSObject {
    static alloc(): _AVCaptureExternalDisplayConfigurator;
    static new(): _AVCaptureExternalDisplayConfigurator;
    init(): _AVCaptureExternalDisplayConfigurator;
    /**
     * Whether the external display supports matching frame rate to a capture device. If `true`, you may instantiate a configurator with a configuration specifying ``AVCaptureExternalDisplayConfiguration/shouldMatchFrameRate`` set to `true`.
     */
    static shouldMatchFrameRateSupported(): boolean;
    /**
     * Whether the external display supports bypassing color space conversion. If `true`, you may instantiate a configurator with a configuration specifying ``AVCaptureExternalDisplayConfiguration/bypassColorSpaceConversion`` set to `true`.
     */
    static supportsBypassingColorSpaceConversion(): boolean;
    /**
     * Whether the external display supports configuration to your preferred resolution. If `true`, you may instantiate a configurator with a configuration specifying ``AVCaptureExternalDisplayConfiguration/preferredResolution`` set to `true`.
     */
    static supportsPreferredResolution(): boolean;
    /**
     * An external display configurator instance that attempts to synchronize the preview layer configuration with the device capture configuration. - Parameter device: The device for which to monitor the configuration. - Parameter previewLayer: The layer that is being used on an external display for displaying the camera preview. - Parameter configuration: A configuration specifying which aspects of the camera's active format to monitor and configure on the external display. - Returns: an ``AVCaptureExternalDisplayConfigurator`` instance. An ``AVCaptureExternalDisplayConfigurator`` is only applicable to external displays. It determines which properties to configure on the external display based on your provided configuration (see ``AVCaptureExternalDisplayConfiguration``). The configurator observes changes to your camera''s configuration, and when changes are observed, it modifies the external display's properties to match. If multiple configurators are linked to the same external display ,the last one created becomes the active configurator for the external display (see ``active``). - Important: An `NSInvalidArgumentException` is thrown if any of the ``AVCaptureExternalDisplayConfiguration`` options are not supported.
     */
    initWithDevice$previewLayer$configuration$(device: _AVCaptureDevice, previewLayer: _CALayer, configuration: _AVCaptureExternalDisplayConfiguration): _AVCaptureExternalDisplayConfigurator;
    /**
     * Forces the external display configurator to asynchronously stop configuring the external display. Call ``stop`` to force the ``AVCaptureExternalDisplayConfigurator`` to asynchronously stop configuring the external display. Once stopped, the ``active`` property changes to `false` and the ``activeExternalDisplayFrameRate`` becomes 0.
     */
    stop(): void;
    /**
     * The device for which the coordinator configures the preview layer. The value of this property is the ``AVCaptureDevice`` instance you provided when instantiating the configurator. ``AVCaptureExternalDisplayConfigurator`` holds a weak reference to the device. If the device is released, this property returns `nil`.
     */
    device(): _AVCaptureDevice | null;
    /**
     * The layer for which the configurator adjusts display properties to match the device's state. The value of this property is the ``CALayer`` instance that you provided when instantiating the configurator. You may specify either an ``AVCaptureVideoPreviewLayer`` or another ``CALayer`` instance that displays a camera's video preview. ``AVCaptureExternalDisplayConfigurator``holds a weak reference to the layer. If the layer is released, this property returns `nil`.
     */
    previewLayer(): _CALayer | null;
    /**
     * This property tells you whether the configurator is actively configuring the external display. When this property returns `true`, the external display is successfully configured to match the device. If it returns`false`, the configurator is not making any configuration changes to the external display. If another ``AVCaptureExternalDisplayConfigurator`` instance takes over the configuration of the external display, this property returns `false`.
     */
    active(): boolean;
    /**
     * The currently configured frame rate on the external display that's displaying the preview layer. Observe this property to determine if the configured frame rate matches the max frame rate (``AVCaptureDevice/activeVideoMinFrameDuration``) of the device. When the ``active`` property becomes `false`, this property changes to 0.
     */
    activeExternalDisplayFrameRate(): number;
}
