/** @packageDocumentation ID3v2 synchronized lyrics frame (SYLT). Stores timestamped lyrics or text. */ import { ByteVector, StringType } from "../../../byteVector.js"; import { Id3v2Frame, Id3v2FrameHeader } from "../id3v2Frame.js"; /** Content types for the SYLT frame. */ export declare enum SynchedTextType { Other = 0, Lyrics = 1, TextTranscription = 2, Movement = 3, Events = 4, Chord = 5, Trivia = 6, WebpageUrls = 7, ImageUrls = 8 } /** A single timed text entry in a SYLT frame. */ export interface SynchedText { /** Timestamp of the text entry, in units determined by the frame's timestamp format. */ time: number; /** The text content of this entry. */ text: string; } /** * Synchronized lyrics/text frame (SYLT). * * Structure: encoding(1) + language(3) + timestampFormat(1) + contentType(1) * + description(null-terminated in encoding) * + repeated (text(null-terminated in encoding) + timestamp(4 big-endian)). */ export declare class SynchronizedLyricsFrame extends Id3v2Frame { /** Text encoding used for strings in this frame. */ private _encoding; /** Three-byte ISO-639-2 language code for the content. */ private _language; /** Short content description string (null-terminated in the encoding). */ private _description; /** Timestamp format: 1 = MPEG frames, 2 = milliseconds. */ private _timestampFormat; /** Content type of the synchronized text (e.g., lyrics, events). */ private _textType; /** Ordered list of timed text entries. */ private _synchedText; /** * Creates a new SYLT frame with the specified text encoding. * @param encoding - The string encoding to use for all text fields. Defaults to {@link StringType.UTF8}. */ constructor(encoding?: StringType); /** * Gets the text encoding used for strings in this frame. * @returns The current {@link StringType} encoding. */ get encoding(): StringType; /** * Sets the text encoding for strings in this frame. * @param e - The {@link StringType} encoding to use. */ set encoding(e: StringType); /** * Gets the three-byte ISO-639-2 language code. * @returns A {@link ByteVector} containing the three-byte language code. */ get language(): ByteVector; /** * Sets the language code, truncating or padding to exactly three bytes. * @param lang - The language bytes to set. */ set language(lang: ByteVector); /** * Gets the content description string. * @returns The description string. */ get description(): string; /** * Sets the content description string. * @param value - The new description string. */ set description(value: string); /** * Gets the timestamp format used for synched text entries. * 1 = MPEG frames, 2 = milliseconds. * @returns The numeric timestamp format identifier. */ get timestampFormat(): number; /** * Sets the timestamp format used for synched text entries. * @param v - 1 for MPEG frames, 2 for milliseconds. */ set timestampFormat(v: number); /** * Gets the content type of the synchronized text. * @returns The {@link SynchedTextType} of this frame. */ get textType(): SynchedTextType; /** * Sets the content type of the synchronized text. * @param v - The {@link SynchedTextType} to set. */ set textType(v: SynchedTextType); /** * Gets the ordered list of timed text entries. * @returns An array of {@link SynchedText} entries. */ get synchedText(): SynchedText[]; /** * Sets the ordered list of timed text entries. * @param text - The array of {@link SynchedText} entries to store. */ set synchedText(text: SynchedText[]); /** * Returns the description string. * @returns The content description of this frame. */ toString(): string; /** @internal Create from raw frame data. */ static fromData(data: ByteVector, header: Id3v2FrameHeader, version: number): SynchronizedLyricsFrame; /** * Parses the raw frame fields into structured SYLT data. * @param data - The raw field bytes of the frame. * @param _version - The ID3v2 version (unused). */ protected parseFields(data: ByteVector, _version: number): void; /** * Serializes the SYLT frame fields into bytes. * @param _version - The ID3v2 version (unused). * @returns A {@link ByteVector} containing the encoded frame fields. */ protected renderFields(_version: number): ByteVector; } //# sourceMappingURL=synchronizedLyricsFrame.d.ts.map