/** @packageDocumentation MP4/M4A tag implementation using iTunes-style ilst atoms. */ import { ByteVector } from "../byteVector.js"; import { Tag } from "../tag.js"; import type { IOStream } from "../toolkit/ioStream.js"; import { PropertyMap } from "../toolkit/propertyMap.js"; import { type VariantMap } from "../toolkit/variant.js"; import { Mp4Atoms } from "./mp4Atoms.js"; export declare enum Mp4CoverArtFormat { Unknown = 0, GIF = 12, JPEG = 13, PNG = 14, BMP = 27 } export declare class Mp4CoverArt { format: Mp4CoverArtFormat; data: ByteVector; constructor(format: Mp4CoverArtFormat, data: ByteVector); } export declare enum AtomDataType { TypeImplicit = 0, TypeUTF8 = 1, TypeUTF16 = 2, TypeJPEG = 13, TypePNG = 14, TypeInteger = 21, TypeBMP = 27, TypeGIF = 12, TypeUndefined = 255 } export declare enum Mp4ItemType { Void = 0, Bool = 1, Int = 2, IntPair = 3, Byte = 4, UInt = 5, LongLong = 6, StringList = 7, ByteVectorList = 8, CoverArtList = 9 } export declare class Mp4Item { type: Mp4ItemType; valid: boolean; atomDataType: AtomDataType; private _bool; private _int; private _intPair; private _byte; private _uint; private _longlong; private _stringList; private _byteVectorList; private _coverArtList; private constructor(); toBool(): boolean; toInt(): number; toByte(): number; toUInt(): number; toLongLong(): bigint; toIntPair(): [number, number]; toStringList(): string[]; toByteVectorList(): ByteVector[]; toCoverArtList(): Mp4CoverArt[]; isValid(): boolean; static invalid(): Mp4Item; static fromBool(value: boolean): Mp4Item; static fromInt(value: number): Mp4Item; static fromIntPair(first: number, second: number): Mp4Item; static fromByte(value: number): Mp4Item; static fromUInt(value: number): Mp4Item; static fromLongLong(value: bigint): Mp4Item; static fromStringList(values: string[]): Mp4Item; static fromByteVectorList(values: ByteVector[]): Mp4Item; static fromCoverArtList(values: Mp4CoverArt[]): Mp4Item; render(itemName: string): ByteVector; } export declare class Mp4Tag extends Tag { private _stream; private _atoms; private _items; private constructor(); static create(stream: IOStream, atoms: Mp4Atoms): Promise; tag(): Tag; get title(): string; set title(v: string); get artist(): string; set artist(v: string); get album(): string; set album(v: string); get comment(): string; set comment(v: string); get genre(): string; set genre(v: string); get year(): number; set year(v: number); get track(): number; set track(v: number); get isEmpty(): boolean; get items(): Map; item(key: string): Mp4Item | undefined; setItem(key: string, item: Mp4Item): void; removeItem(key: string): void; contains(key: string): boolean; properties(): PropertyMap; removeUnsupportedProperties(props: string[]): void; setProperties(props: PropertyMap): PropertyMap; complexPropertyKeys(): string[]; complexProperties(key: string): VariantMap[]; setComplexProperties(key: string, value: VariantMap[]): boolean; render(): ByteVector; save(): Promise; strip(): Promise; private setTextItem; private updateParents; private updateOffsets; private saveNew; private saveExisting; } //# sourceMappingURL=mp4Tag.d.ts.map