import { ByteVector } from "../byteVector"; /** * Indicates the flags applied to a {@link Id3v2TagHeader} object. */ export declare enum Id3v2TagHeaderFlags { /** * The header contains no flags. */ None = 0, /** * The tag described by the header contains a footer. */ FooterPresent = 16, /** * The tag described by the header is experimental. */ ExperimentalIndicator = 32, /** * The tag described by the header contains an extended header. */ ExtendedHeader = 64, /** * The tag described by the header has been unsynchronized using the ID3v2 unsynchronization * scheme. */ Unsynchronization = 128 } /** * This class provides a representation of an ID3v2 tag header which can be read from and written * to disk. */ export declare class Id3v2TagHeader { /** * The identifier used to recognize an ID3v2 header. */ static readonly FILE_IDENTIFIER: ByteVector; private _flags; private _majorVersion; private _revisionNumber; private _tagSize; /** * Constructs and initializes a new instance by reading it from the raw header data. * @param data Object containing the raw data to build the new instance from. */ static fromData(data: ByteVector): Id3v2TagHeader; /** * Gets the complete size of the tag described by the current instance including the header * and footer. */ get completeTagSize(): number; /** * Gets the flags applied to the current instance. */ get flags(): Id3v2TagHeaderFlags; /** * Sets the flags applied to the current instance. * @param value Bitwise combined {@link Id3v2TagHeaderFlags} value containing the flags to apply to the * current instance. */ set flags(value: Id3v2TagHeaderFlags); /** * Gets the major version of the tag described by the current instance. */ get majorVersion(): number; /** * Sets the major version of the tag described by the current instance. * When the version is set, unsupported header flags will automatically be removed from the * tag. * @param value ID3v2 version of tag. Must be a positive 8-bit integer betweenInclusive 2 and 4. */ set majorVersion(value: number); /** * Gets the version revision number of the tag represented by the current instance. */ get revisionNumber(): number; /** * Sets the version revision number of the tag represented by the current instance. * This value should always be zero. Non-zero values indicate an experimental or new version of * the format which may not be completely understood by the current version of * node-taglib-sharp. Some software may refuse to read tags with a non-zero value. * @param value Version revision number of the tag represented by the current instance. Must be * an 8-bit unsigned integer. */ set revisionNumber(value: number); /** * Gets the complete size of the tag described by the current instance, minus the header and * footer. */ get tagSize(): number; /** * Sets the complete size of the tag described by the current instance, minus the header * footer. NOTE THIS MUST BE A 28-BIT UNSIGNED INTEGER. * @param value Size of the tag in bytes. Must be an unsigned 28-bit integer */ set tagSize(value: number); /** * Renders the current instance as a raw ID3v2 header */ render(): ByteVector; }