import type { _AVCaptureInput } from "./AVCaptureInput.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CMTime } from "../structs/CMTime.js";
export declare class _AVCaptureScreenInput extends _AVCaptureInput {
    static alloc(): _AVCaptureScreenInput;
    static new(): _AVCaptureScreenInput;
    /**
     * Creates an AVCaptureScreenInput instance that provides media data from the main display. This method creates an instance of AVCaptureScreenInput using the main display whose id is returned from CGMainDisplayID().
     */
    init(): _AVCaptureScreenInput;
    /**
     * Creates an AVCaptureScreenInput instance that provides media data from the given display. The id of the display from which to capture video. CGDirectDisplayID is defined in <CoreGraphics /CGDirectDisplay.h> An AVCaptureScreenInput instance that provides data from the given screen, or nil, if the screen could not be used for capture. This method creates an instance of AVCaptureScreenInput that can be used to capture data from a display in an AVCaptureSession. This method validates the displayID. If the display cannot be used because it is not available on the system, for example, this method returns nil.
     */
    initWithDisplayID$(displayID: number): _AVCaptureScreenInput | null;
    /**
     * A property indicating the screen input's minimum frame duration. An AVCaptureScreenInput's minFrameDuration is the reciprocal of its maximum frame rate. This property may be used to request a maximum frame rate at which the input produces video frames. The requested rate may not be achievable due to overall bandwidth, so actual frame rates may be lower.
     */
    minFrameDuration(): CMTime;
    setMinFrameDuration$(value: CMTime): void;
    /**
     * A property indicating the bounding rectangle of the screen area to be captured in points. By default, AVCaptureScreenInput captures the entire area of the displayID with which it is associated. To limit the capture rectangle to a subsection of the screen, set the cropRect property, which defines a smaller section of the screen in the screen's coordinate system. The origin (0,0) is the bottom-left corner of the screen.
     */
    cropRect(): CGRect;
    setCropRect$(value: CGRect): void;
    /**
     * A property indicating the factor by which video buffers captured from the screen are to be scaled. By default, AVCaptureScreenInput captures the video buffers from the display at a scale factor of 1.0 (no scaling). Set this property to scale the buffers by a given factor. For instance, a 320x240 capture area with a scaleFactor of 2.0f produces video buffers at 640x480.
     */
    scaleFactor(): number;
    setScaleFactor$(value: number): void;
    /**
     * A property indicating whether mouse clicks should be highlighted in the captured output. By default, AVCaptureScreenInput does not highlight mouse clicks in its captured output. If this property is set to YES, mouse clicks are highlighted (a circle is drawn around the mouse for the duration of the click) in the captured output.
     */
    capturesMouseClicks(): boolean;
    setCapturesMouseClicks$(value: boolean): void;
    /**
     * A property indicating whether the cursor should be rendered to the captured output. By default, AVCaptureScreenInput draws the cursor in its captured output. If this property is set to NO, the captured output contains only the windows on the screen. Cursor is omitted. Note that cursor position and mouse button state at the time of capture is preserved in CMSampleBuffers emitted from AVCaptureScreenInput. See the inline documentation for kCMIOSampleBufferAttachmentKey_MouseAndKeyboardModifiers in <CoreMediaIO /CMIOSampleBuffer.h>
     */
    capturesCursor(): boolean;
    setCapturesCursor$(value: boolean): void;
    /**
     * A property indicating whether duplicate frames should be removed by the input. If this property is set to YES, AVCaptureScreenInput performs frame differencing and when it detects duplicate frames, it drops them. If set to NO, the captured output receives all frames from the input. Prior to 10.9 this value defaulted to YES. In 10.9 and later, it defaults to NO, as modern platforms support frame differencing in hardware-based encoders. As of 10.10, this property has been deprecated and is ignored. Clients wishing to re-create this functionality can use an AVCaptureVideoDataOutput and compare frame contents in their own code. If they wish to write a movie file, they can then pass the unique frames to an AVAssetWriterInput.
     * @deprecated No longer supported.
     */
    removesDuplicateFrames(): boolean;
    setRemovesDuplicateFrames$(value: boolean): void;
}
