import { File, ReadStyle } from "../file"; import { IFileAbstraction } from "../fileAbstraction"; import { Properties } from "../properties"; import { Tag, TagTypes } from "../tag"; /** * This class extends {@link File} to provide tagging and properties support for Matroska and WebM * files. */ export default class MatroskaFile extends File { private static readonly SUPPORTED_DOCTYPES; private readonly _properties; private readonly _tag; private _header; private _tracks; private _readState; /** * Constructs and initializes a new instance of a Matroska/Webm file based on the provided file. * @param file File abstraction or path to a file to open as a Matroska/WebM file * @param propertiesStyle How in-depth to read the properties of the file */ constructor(file: IFileAbstraction | string, propertiesStyle: ReadStyle); /** @inheritDoc */ get properties(): Properties; /** @inheritDoc */ get tag(): Tag; /** @inheritDoc */ getTag(types: TagTypes): Tag; /** @inheritDoc */ removeTags(types: TagTypes): void; /** @inheritDoc */ save(): void; private read; private readAttachments; private readEbmlHeader; private readSegmentInfo; private readSegments; private readTag; private readTags; private readTracks; }