import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CMTime } from "../structs/CMTime.js";
import type { CMTimeRange } from "../structs/CMTimeRange.js";
export declare class _AVCaptionRenderer extends _NSObject {
    static alloc(): _AVCaptionRenderer;
    static new(): _AVCaptionRenderer;
    init(): _AVCaptionRenderer;
    /**
     * @method captionSceneChangesInRange: @abstract Determine render time ranges within an enclosing time range to account for visual changes among captions. @result An NSArray of AVCaptionRendererScenes; perhaps empty if there are no captions intersecting with the consideredTimeRange @discussion This is an optional service useful for optimizing drawing. A client can perform drawing without it. As captions may become active and inactive throughout the timeline, this method will return a NSArray holding scene objects with time ranges on whose edges there's a visual change. The client can use the ranges of time between these edges with -renderInContext:atTime: to ensure all visual changes are rendered. The returned time ranges consider activation/deactivation of captions, temporal overlapping, and intra-caption timing requirements (e.g., character reveal animations). Time ranges may be returned where no captions are active as this is also a change in the caption "scene". The returned NSArray contains AVCaptionRendererScenes, each holding the CMTimeRange of that scene but potentially other information that may be useful to the client during renderering. The consideredTimeRange parameter is a CMTimeRange expressing the limits for consideration. The extent of this range does not need to correspond to the timing of captions. It might be the range from 0 to some duration. For efficiency, the range can be limited to a window of time. It is also possible to use the range anchored at a time and extending in the direction of playback.
     */
    captionSceneChangesInRange$(consideredTimeRange: CMTimeRange): _NSArray;
    /**
     * @method renderInContext:forTime: @abstract Draw the captions corresponding to a time established by the AVCaptions to a CGContext. @discussion Captions are drawn into the CGContextRef based upon their activation at the specified time. If there are no captions or no captions at the specified time, "emptiness" will still be drawn (e.g., flood filling with zero alpha or a color).
     */
    renderInContext$forTime$(ctx: Uint8Array, time: CMTime): void;
    /**
     * @property captions @abstract A NSArray holding captions to consider for rendering. @discussion This is the array of AVCaptions to consider when drawing. The array can contain no captions.
     */
    captions(): _NSArray;
    setCaptions$(value: _NSArray): void;
    /**
     * @property bounds @abstract A CGRect holding bounds for the drawing of caption scene(s). @discussion This is a CGRect indicating where captions are drawn using renderInContext:atTime: Once established, this CGRect is used in each call to renderInContext:atTime: until it is changed to another value. This should be set up earlier than drawing.
     */
    bounds(): CGRect;
    setBounds$(value: CGRect): void;
}
