import type { NobjcObject } from "objc-js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _AVCaptureDeviceInput } from "../AVFoundation/AVCaptureDeviceInput.js";
import type { _SCSensitivityAnalysis } from "./SCSensitivityAnalysis.js";
import type { SCVideoStreamAnalyzerStreamDirection } from "./SCVideoStreamAnalyzerStreamDirection.js";
export declare class _SCVideoStreamAnalyzer extends _NSObject {
    static alloc(): _SCVideoStreamAnalyzer;
    static new(): _SCVideoStreamAnalyzer;
    init(): _SCVideoStreamAnalyzer;
    /**
     * Creates a video stream analyzer for the given call participant and stream option. - parameter participantUUID: A unique identifier that you provide to distinguish among multiple individuals on a conference call. Set this argument to the same value per person on the call, if your app supports multiple streams per person. - parameter streamDirection: An option that indicates whether the stream comes from the device's camera or from a remote individual signed in to the call. - parameter error: An error that occurs while intializing a video stream analyzer. - Important: This class works only when the Communication Safety parental control in Screen Time is enabled, or when Sensitive Content Warnings is on in Settings. This method throws an error if both settings are off, or if the device doesn't support analysis for the specified stream direction.
     */
    initWithParticipantUUID$streamDirection$error$(participantUUID: _NSString, streamDirection: SCVideoStreamAnalyzerStreamDirection, error: NobjcObject | null): _SCVideoStreamAnalyzer | null;
    /**
     * Analyzes individual video-stream frames for sensitive content. This method analyzes a specific video frame and updates ``analysis`` according to the results. If your app implements a custom stream decoder, you can call this method for each video frame.
     */
    analyzePixelBuffer$(pixelBuffer: NobjcObject): void;
    /**
     * Analyzes video frames for the given decompression session. - parameter decompressionSession: An object that provides video frames for your app to analyze for sensitive content. - parameter error: An error object that describes an issue that occurs while providing the video decompression session. - returns: `YES` if the method succeeds; otherwise, `NO`. If the framework detects sensitive content in the video stream, the <doc://com.apple.documentation/documentation/videotoolbox/vtdecompressionsession> produces blank frames to effectively censor the video stream on the person's behalf. When your app is ready to show the video stream again, resume analysis by calling ``continueStream``.
     */
    beginAnalysisOfDecompressionSession$error$(decompressionSession: NobjcObject, error: NobjcObject | null): boolean;
    /**
     * Analyzes video frames for the given capture device input. - parameter captureDeviceInput: An object that contains information about the specific camera and its captured content in the video stream. - parameter error: An error object that describes an issue that occurs while processing the capture device input. - returns: `YES` if the method succeeds; otherwise, `NO`. Call this method to begin analyzing a video stream from the given <doc://com.apple.documentation/documentation/avfoundation/avcapturedeviceinput>. If the framework detects sensitive content in the video stream, the capture-device-input interrupts subsequent frames with the `AVCaptureSessionInterruptionReasonSensitiveContentMitigationActivated` interruption reason to effectively censor the video stream on the person's behalf. When your app is ready to show the video stream again, resume analysis by calling ``continueStream``.
     */
    beginAnalysisOfCaptureDeviceInput$error$(captureDeviceInput: _AVCaptureDeviceInput, error: NobjcObject | null): boolean;
    /**
     * Stops stream analysis. This method stops analyzing the video stream in reference to the most recent call to `beginAnalysis`.
     */
    endAnalysis(): void;
    /**
     * Indicates that your app is ready to resume video stream analysis. When the framework detects sensitive content in the video stream, it pauses analysis and begins censoring the stream's video frames. Call this method to resume analysis and stop censoring video frames when your app is ready to show the stream again.
     */
    continueStream(): void;
    /**
     * The results of the first detected sensitive video frame. The analysis also includes suggestions for the app based on the nature of the sensitive content, specifically: ``SCSensitivityAnalysis/shouldInterruptVideo``, ``SCSensitivityAnalysis/shouldIndicateSensitivity`` and ``SCSensitivityAnalysis/shouldMuteAudio``.
     */
    analysis(): _SCSensitivityAnalysis | null;
    /**
     * A handler that your app provides to react to sensitive content detection. The system invokes all analyzer handlers on the same conference call with the updated analysis or error.
     */
    analysisChangedHandler(): (arg0: _SCSensitivityAnalysis, arg1: _NSError) => void;
    setAnalysisChangedHandler$(value: (arg0: _SCSensitivityAnalysis, arg1: _NSError) => void): void;
}
