/** @packageDocumentation ID3v2 general encapsulated object frame (GEOB). Stores arbitrary binary objects with metadata. */ import { ByteVector, StringType } from "../../../byteVector.js"; import { Id3v2Frame, Id3v2FrameHeader } from "../id3v2Frame.js"; /** * General encapsulated object frame (GEOB). * * Structure: encoding(1) + mimeType(null-terminated Latin1) * + fileName(null-terminated in encoding) * + description(null-terminated in encoding) + objectData. */ export declare class GeneralEncapsulatedObjectFrame extends Id3v2Frame { /** Text encoding used for the file name and description fields. */ private _encoding; /** MIME type of the encapsulated object, stored as a null-terminated Latin1 string. */ private _mimeType; /** File name associated with the encapsulated object. */ private _fileName; /** Human-readable description of the encapsulated object. */ private _description; /** Raw binary payload of the encapsulated object. */ private _object; /** * Creates a new, empty GEOB frame. * @param encoding - Text encoding to use for the file name and description fields. Defaults to UTF-8. */ constructor(encoding?: StringType); /** Gets the text encoding used for the file name and description fields. */ get encoding(): StringType; /** Sets the text encoding used for the file name and description fields. */ set encoding(e: StringType); /** Gets the MIME type of the encapsulated object. */ get mimeType(): string; /** Sets the MIME type of the encapsulated object. */ set mimeType(value: string); /** Gets the file name associated with the encapsulated object. */ get fileName(): string; /** Sets the file name associated with the encapsulated object. */ set fileName(value: string); /** Gets the human-readable description of the encapsulated object. */ get description(): string; /** Sets the human-readable description of the encapsulated object. */ set description(value: string); /** Gets the raw binary payload of the encapsulated object. */ get object(): ByteVector; /** Sets the raw binary payload of the encapsulated object. */ set object(data: ByteVector); /** * Returns the description of the encapsulated object. * @returns The description string stored in this frame. */ toString(): string; /** @internal Create from raw frame data. */ static fromData(data: ByteVector, header: Id3v2FrameHeader, version: number): GeneralEncapsulatedObjectFrame; /** * Parses the binary payload of the GEOB frame. * @param data - Raw field bytes beginning with the encoding byte. * @param _version - ID3v2 version (unused; parsing is version-independent). */ protected parseFields(data: ByteVector, _version: number): void; /** * Serialises the frame fields into a binary payload. * @param _version - ID3v2 version (unused; rendering is version-independent). * @returns A `ByteVector` containing the encoding byte, null-terminated MIME type, null-terminated file name, null-terminated description, and the raw object data. */ protected renderFields(_version: number): ByteVector; } //# sourceMappingURL=generalEncapsulatedObjectFrame.d.ts.map