import type { NobjcObject } from "objc-js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSMutableCopying } from "../Foundation/NSMutableCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _AVCaptionRegion } from "./AVCaptionRegion.js";
import type { _AVCaptionRuby } from "./AVCaptionRuby.js";
import type { CMTimeRange } from "../structs/CMTimeRange.js";
import type { AVCaptionAnimation } from "./AVCaptionAnimation.js";
import type { AVCaptionDecoration } from "./AVCaptionDecoration.js";
import type { AVCaptionFontStyle } from "./AVCaptionFontStyle.js";
import type { AVCaptionFontWeight } from "./AVCaptionFontWeight.js";
import type { AVCaptionTextAlignment } from "./AVCaptionTextAlignment.js";
import type { AVCaptionTextCombine } from "./AVCaptionTextCombine.js";
export declare class _AVCaption extends _NSObject {
    static alloc(): _AVCaption;
    static new(): _AVCaption;
    init(): _AVCaption;
    /**
     * @method initWithText:timeRange: @abstract Initializes an instance of AVCaption with the given text and time range. @param text The text for the new caption object. See text property for the available character sets and other restrictions. @param timeRange The time range for the new caption object. @result An instance of AVCaption that carries the given text and time range.
     */
    initWithText$timeRange$(text: _NSString, timeRange: CMTimeRange): _AVCaption;
    /**
     * @method textColorAtIndex:range: @abstract The color of the character(s). @discussion A value of NULL means that the color is not specified. The caller must release the returned object via CGColorRelease. The range parameter receives UTF-16 code unit index range the style is effective. The range will indicate where the current style returned (including NULL) will be active and allows discovery of the next change in the style. CEA608 closed captions support the following 8 colors with 1.0 alpha value. White (RGB:1.0, 1.0, 1.0) Red (RGB:1.0, 0.0, 0.0) Blue (RGB:0.0, 0.0, 1.0) Green (RGB:0.0, 1.0, 0.0) Yellow (RGB:1.0, 1.0, 0.0) Cyan (RGB:0.0, 1.0, 1.0) Magenta (RGB:1.0, 0.0, 1.0) Black (RGB:0.0, 0.0, 0.0)
     */
    textColorAtIndex$range$(index: number, outRange: NobjcObject | null): NobjcObject;
    /**
     * @method backgroundColorAtIndex:range: @abstract The background color of the character(s). @discussion A value of NULL means that the color is not specified. The caller must release the returned object via CGColorRelease. The range parameter receives UTF-16 code unit index range the style is effective. After returning from the call, the range will indicate where the current style returned (including NULL) will be active and allows discovery of the next change in the style. iTT format ignores this property. CEA608 closed captions support the following 8 colors with 1.0, 0.5 and 0.0 alpha values. White (RGB:1.0, 1.0, 1.0) Red (RGB:1.0, 0.0, 0.0) Blue (RGB:0.0, 0.0, 1.0) Green (RGB:0.0, 1.0, 0.0) Yellow (RGB:1.0, 1.0, 0.0) Cyan (RGB:0.0, 1.0, 1.0) Magenta (RGB:1.0, 0.0, 1.0) Black (RGB:0.0, 0.0, 0.0)
     */
    backgroundColorAtIndex$range$(index: number, outRange: NobjcObject | null): NobjcObject;
    /**
     * @method fontWeightAtIndex:range: @abstract Indicates the font weight of the character(s). @discussion The range parameter receives UTF-16 code unit index range the style is effective. After returning from the call, the range will indicate where the current style returned will be active and allows discovery of the next change in the style. CEA608 closed captions ignore this property. A visible distinction between AVCaptionFontWeightNormal and AVCaptionFontWeightBold may not exist if the font used has only one weight. This can be more common with CJK fonts where individual fonts can be quite large in terms of storage. Nevertheless, AVCaption still carries the font weight semantics so if the same AVCaption is applied to a different font having multiple weights, the distinction will become visible.
     */
    fontWeightAtIndex$range$(index: number, outRange: NobjcObject | null): AVCaptionFontWeight;
    /**
     * @method fontStyleAtIndex:range: @abstract Indicates the font style of the character(s). @discussion The range parameter receives UTF-16 code unit index range the style is effective. After returning from the call, the range will indicate where the current style returned will be active and allows discovery of the next change in the style. Some writing systems may not have italic glyphs for characters and so fonts with italic forms are not available. For example, Japanese fonts do not typically have italic forms for most characters although there may be special cases for Latin characters. Nevertheless, AVCaption still carries the font style semantics even though there may be no visible rendering distinction between using AVCaptionFontStyleNormal and AVCaptionFontStyleItalic with that language.
     */
    fontStyleAtIndex$range$(index: number, outRange: NobjcObject | null): AVCaptionFontStyle;
    /**
     * @method decorationAtIndex:range: @abstract Character decoration @discussion The value of OR-ed value of AVCaptionDecoration as NSInteger. The range parameter receives UTF-16 code unit index range the style is effective. After returning from the call, the range will indicate where the current style returned will be active and allows discovery of the next change in the style. CEA608 closed captions support only AVCaptionDecorationNone and AVCaptionDecorationUnderline.
     */
    decorationAtIndex$range$(index: number, outRange: NobjcObject | null): AVCaptionDecoration;
    /**
     * @method textCombineAtIndex:range: @abstract Text combine (Tate-Chu-Yoko) @discussion The style is effective only in a vertical text region. When specified, the renderer combines all the characters in the style range so that their glyph areas consume the nominal bounding box of a single em square of the surrounding vertical text.
     */
    textCombineAtIndex$range$(index: number, outRange: NobjcObject | null): AVCaptionTextCombine;
    /**
     * @method rubyAtIndex:range: @abstract Get Ruby associated with the characters. @discussion The range parameter receives UTF-16 code unit index range where the ruby text is applied. After returning from the call, the range will indicate where the current style returned (including NULL) will be active and allows discovery of the next change in the style. It returns nil when the text doesn't have a ruby at the position. CEA608 closed captions ignore this property.
     */
    rubyAtIndex$range$(index: number, outRange: NobjcObject | null): _AVCaptionRuby | null;
    /**
     * @property text @abstract The text content of the caption. @discussion The text may contain any of the line breaking character sequences (LF, CR, or CF+LF) and separating the lines in the presentation. The Apple iTT format supports all Unicode code points allowed in a XML document. Any XML special characters such as '&' are converted to a corresponding character reference syntax when written to the destination file. CEA608 closed captions support the following Unicode characters. Range: U+0020 - U+005F Range: U+0061 - U+007E Range: U+00A1 - U+00A5 Characters: U+00A9, U+00AB, U+00AE, U+00B0, U+00BB, U+00BD, U+00BF Range: U+00C0-U+00C5 Range: U+00C7-U+00CF Range: U+00D1-U+00D6 Range: U+00D8-U+00DC Range: U+00DF-U+00E5 Range: U+00E7-U+00EF Range: U+00F1-U+00FC Range: U+2018-U+2019 Range: U+2018-U+201D Character: U+2022 Range: U+2120-U+2122 Characters: U+2501, U+2503, U+250F, U+2513, U+2517, U+251B, U+2588, U+266A CEA608 closed captions don't support the line breaking character sequences (LF, CR, or CF+LF).
     */
    text(): _NSString;
    /**
     * @property timeRange @abstract The time range during which the caption should be presented. Apple iTT format doesn't allow two captions to have overlapped time range except when the two captions are associated with different regions. CEA608 closed caption time ranges can't start with zero, because the decoder needs some transmission time. CEA608 closed caption time ranges should be aligned with the video frame rate because this is how often the commands are delivered.
     */
    timeRange(): CMTimeRange;
    /**
     * @property region @abstract The region where the caption is placed. @discussion It can be nil when the underlying caption format doesn't support or use regions.
     */
    region(): _AVCaptionRegion | null;
    /**
     * @property textAlignment @abstract The text alignment within the containing region. @discussion This property throws an exception if a value is set which is not a valid AVCaptionTextAlignment.
     */
    textAlignment(): AVCaptionTextAlignment;
    animation(): AVCaptionAnimation;
}
export interface _AVCaption extends _NSCopying, _NSMutableCopying, _NSSecureCoding {
}
