import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _AVCaptureFraming } from "./AVCaptureFraming.js";
export declare class _AVCaptureSmartFramingMonitor extends _NSObject {
    static alloc(): _AVCaptureSmartFramingMonitor;
    static new(): _AVCaptureSmartFramingMonitor;
    init(): _AVCaptureSmartFramingMonitor;
    /**
     * Begins monitoring the device's active scene and making framing recommendations. - Parameter outError: A pointer to an ``NSError`` indicating why ``startMonitoringWithError:`` failed, or to a `nil` ``NSError`` on success. - Returns: `true` if successful, `false` if monitoring could not be started. The monitor's ``recommendedFraming`` is `nil` when it is not actively running. Call this method to start monitoring. You may start monitoring before or after calling ``AVCaptureSession/startRunning``, and you may stop active monitoring without stopping the capture session by calling ``stopMonitoring`` at any time, but you must set ``enabledFramings`` before running your capture session so that the monitor is prepared for your desired framing recommendations. While the monitor is running, you may set ``enabledFramings`` at any time to change the framing choices the monitor should consider in its recommendations.
     */
    startMonitoringWithError$(outError: NobjcObject | null): boolean;
    /**
     * Stops monitoring the device's active scene and making framing recommendations. The monitor's ``recommendedFraming`` is `nil` when it is not actively running. Call this method to stop actively monitoring the scene and making framing recommendations. You may start monitoring before or after calling ``AVCaptureSession/startRunning``, and may stop active monitoring without stopping the capture session by calling ``stopMonitoring`` at any time.
     */
    stopMonitoring(): void;
    /**
     * An array of framings supported by the monitor in its current configuration. The monitor is capable of recommending any of the framings in this array. This property is key-value observable and may change as the target capture device's ``AVCaptureDevice/activeFormat`` property changes. This array contains the full set of framings supported by the monitor in the device's current configuration. You must tell the monitor which smart framings you are interested in having recommended to you by setting the ``enabledFramings`` property.
     */
    supportedFramings(): _NSArray;
    /**
     * An array of framings that the monitor is allowed to suggest. The monitor is capable of recommending any of the framings in the ``supportedFramings`` array. This property contains the subset of ``supportedFramings`` you would like to have recommended to you. You may set this property at any time while running your ``AVCaptureSession``. This property's default value is the empty array.
     */
    enabledFramings(): _NSArray;
    setEnabledFramings$(value: _NSArray): void;
    /**
     * The latest recommended framing from the monitor. While your ``AVCaptureSession`` is running, the monitor continuously observes its device's scene to recommend the best framing. This recommended framing is always one of the values in ``enabledFramings``. This property may return `nil` if smart framing isn't supported for the device in its current configuration. Its default value is `nil`. This property is key-value observable, and when you observe a change, you may respond to the new recommendation by calling ``AVCaptureDevice/setDynamicAspectRatio:completionHandler:`` and setting ``AVCaptureDevice/videoZoomFactor`` on the associated device in whatever order best matches your animation between old and new framings.
     */
    recommendedFraming(): _AVCaptureFraming | null;
    /**
     * Yes when the receiver is actively monitoring. See ``startMonitoringWithError:`` and ``stopMonitoring``.
     */
    monitoring(): boolean;
}
