/** @packageDocumentation ID3v2 URL link frames (W*** and WXXX). Store hyperlinks related to the audio content. */ import { ByteVector, StringType } from "../../../byteVector.js"; import { Id3v2Frame, Id3v2FrameHeader } from "../id3v2Frame.js"; /** * URL link frame (W*** except WXXX). * * Structure: url (Latin1 text, no encoding byte, no null terminator). */ export declare class UrlLinkFrame extends Id3v2Frame { /** The URL string stored in this frame. Populated lazily from `_rawData`. */ private _url; /** Deferred raw field bytes from `fromData()`; cleared after first parse. */ private _rawData; /** * Creates a new URL link frame with the given four-byte frame identifier. * @param frameId - The four-byte ID3v2 frame identifier (e.g. `WCOM`). */ constructor(frameId: ByteVector); /** Gets the URL stored in this frame. Triggers lazy parsing if needed. */ get url(): string; /** Sets the URL stored in this frame. Triggers lazy parsing if needed. */ set url(value: string); /** * Returns the URL string. * @returns The URL stored in this frame. */ toString(): string; /** @internal Create from raw frame data. */ static fromData(data: ByteVector, header: Id3v2FrameHeader, version: number): UrlLinkFrame; /** * Stores the raw field bytes for lazy parsing. * @param data - Raw field bytes for this frame. * @param _version - The ID3v2 version (unused). */ protected parseFields(data: ByteVector, _version: number): void; /** * Serialises the URL to binary using Latin1 encoding. * @param _version - The ID3v2 version (unused). * @returns A {@link ByteVector} containing the Latin1-encoded URL. */ protected renderFields(_version: number): ByteVector; /** Materialises the lazily-deferred raw field data into `_url`. */ private _parseRawData; } /** * User URL link frame (WXXX). * * Structure: encoding(1) + description(null-terminated in encoding) + url. */ export declare class UserUrlLinkFrame extends UrlLinkFrame { /** Text encoding used for the description field. */ private _encoding; /** Short content description identifying this WXXX frame among others. */ private _description; /** Deferred raw WXXX field bytes from `fromRawData()`; cleared after first parse. */ private _rawWxxxData; /** * Creates a new user URL link frame (WXXX). * @param encoding - The text encoding to use for the description. Defaults to UTF-8. */ constructor(encoding?: StringType); /** Gets the text encoding used for the description field. Triggers lazy parsing if needed. */ get encoding(): StringType; /** Sets the text encoding used for the description field. Triggers lazy parsing if needed. */ set encoding(e: StringType); /** Gets the content description for this WXXX frame. Triggers lazy parsing if needed. */ get description(): string; /** Sets the content description for this WXXX frame. Triggers lazy parsing if needed. */ set description(value: string); /** * Creates a {@link UserUrlLinkFrame} from raw frame data read from a tag. * @param data - The full raw frame bytes. * @param header - The already-parsed frame header. * @param version - The ID3v2 version of the containing tag. * @returns A new {@link UserUrlLinkFrame} with deferred field parsing. */ static fromRawData(data: ByteVector, header: Id3v2FrameHeader, version: number): UserUrlLinkFrame; static find(tag: { frames?: Id3v2Frame[]; }, description: string): UserUrlLinkFrame | null; protected renderFields(_version: number): ByteVector; private _parseWxxxRaw; } //# sourceMappingURL=urlLinkFrame.d.ts.map