import { TagTypes } from "../tag"; /** * This class contains settings related to MPEG audio file operations. Open files will need to be * re-read in order for changes to take effect. */ export default class MpegAudioFileSettings { /** * The types of tags that are supported by MPEG audio files. */ static readonly SUPPORTED_TAG_TYPES: number; private static _defaultTagTypes; private static _preferApeTagAtFileEnd; private static _preferId3v2TagAtFileEnd; /** * Gets the default types of tags for an MPEG audio file. When opening a file, if these tag * types do not exist on the file, they will be created. */ static get defaultTagTypes(): TagTypes; /** * Sets the default types of tags for an MPEG audio file. When opening a file, if these tag * types do not exist on the file, they will be created. See {@link SUPPORTED_TAG_TYPES} for a * list of tag types that are supported by node-taglib-sharp for MPEG container files. */ static set defaultTagTypes(value: TagTypes); /** * Gets whether *new* APE tags should be stored at the end of the file. If `true` new * APE tags will be stored at the end of the file. If `false` new APE tags will be stored at * the beginning of the file (not recommended). Note, this only affects *new* APE tags. * Existing APE tags will not be moved unless removed and re-added. * @default `true` */ static get preferApeTagAtFileEnd(): boolean; /** * Gets whether *new* APE tags should be stored at the end of the file. If `true` new * APE tags will be stored at the end of the file. If `false` new APE tags will be stored at * the beginning of the file (not recommended). Note, this only affects *new* APE tags. * Existing APE tags will not be moved unless removed and re-added. * @default `true` */ static set preferApeTagAtFileEnd(value: boolean); /** * Gets whether *new* ID3v2 tags should be stored at the end of the file. If `true` new * ID3v2 tags will be stored at the end of the file. If `false` new ID3v2 tags will be stored * at the beginning of the file. Note, this only affects *new* ID3v2 tags. Existing ID3v2 tags * will not be moved unless removed and re-added. * @remarks * In order to store an ID3v2 tag at the end of a file, it must have a tag footer. Tag * footers are only supported in ID3v2.4. If the ID3v2 version is changed, it will cause an * error to be thrown when the tag is rendered. * @default `false` */ static get preferId3v2TagAtFileEnd(): boolean; /** * Sets whether *new* ID3v2 tags should be stored at the end of the file. If `true` new * ID3v2 tags will be stored at the end of the file. If `false` new ID3v2 tags will be stored * at the beginning of the file. Note, this only affects *new* ID3v2 tags. Existing ID3v2 tags * will not be moved unless removed and re-added. * @remarks * In order to store an ID3v2 tag at the end of a file, it must have a tag footer. Tag * footers are only supported in ID3v2.4. If the ID3v2 version is changed, it will cause an * error to be thrown when the tag is rendered. * @default `false` */ static set preferId3v2TagAtFileEnd(value: boolean); }