import EbmlElement from "../../ebml/ebmlElement"; import { ByteVector } from "../../byteVector"; import { ICodec, MediaTypes } from "../../properties"; export declare enum MatroskaTrackType { Video = 1, Audio = 2, Complex = 3, Logo = 16, Subtitle = 17, Buttons = 18, Control = 32, Metadata = 33 } export declare class Track implements ICodec { private readonly _codecPrivateData; private readonly _codecId; private readonly _codecName; private readonly _isCommentary; private readonly _isDefault; private readonly _isEnabled; private readonly _isForced; private readonly _isHearingImpaired; private readonly _isTranslation; private readonly _isVisualImpaired; private readonly _language; private readonly _languageIetf; private readonly _trackName; private readonly _trackNumber; private readonly _trackUid; private readonly _type; /** * Constructor for a generic {@link Track} object. Not intended to be called from outside the * {@link TrackFactory} class. * @param elements * @internal */ constructor(elements: Map); /** * An ID corresponding to the codec see * (Matroska codec RFC)[https://www.matroska.org/technical/codec_specs.html] for more info. */ get codecId(): string; /** * Human-readable string specifying the codec. This field is optional. */ get codecName(): string; /** * Private data to help the codec. */ get codecPrivateData(): ByteVector; /** @inheritDoc */ get description(): string; /** @inheritDoc */ get durationMilliseconds(): number; /** * Is `true` if the track contains commentary. */ get isCommentary(): boolean; /** * Is `true` if the track should be eligible for automatic selection by the player. */ get isDefault(): boolean; /** * Is `true` if the track is usable. It is possible to turn an unusable track into a usable * track using chapter codecs or control tracks. */ get isEnabled(): boolean; /** * Is `true` if the track should be eligible for automatic selection by the player if it * matches the user's language preference, even if the user's preferences would normally not * enable subtitles with the selected audio track. This can be used for tracks containing only * translations of foreign-language audio or onscreen text. Only applies to subtitle tracks. */ get isForced(): boolean; /** * Is `true` if the track is suitable for users with hearing impairments. */ get isHearingImpaired(): boolean; /** * Is `true` if the track is suitable for users with visual impairments. */ get isVisualImpaired(): boolean; /** * Is `true` if the track is a translation of the content's original language. */ get isTranslation(): boolean; /** * Language of the track. * @remarks * If the Matroska `LanguageIETF` field is available, it will be used preferentially. * This uses the BCP-47 IETF language tag, using the IANA language subtag registry. If it * is not available, the `Language` field is used, if available. This uses the ISO 639-2 * format of the 3 letter or 3+2 letter configuration. Both fields are optional * `undefined` is returned if language is not set for the track. */ get language(): string; /** @inheritDoc */ get mediaTypes(): MediaTypes; /** * Human-readable track name. This field is optional. */ get trackName(): string; /** * Track number as is used in the block header. */ get trackNumber(): number; /** * A unique ID to identify the track. */ get trackUid(): bigint; /** * Type of the track. */ get type(): MatroskaTrackType; }