/** @packageDocumentation ID3v2 popularimeter frame (POPM). Stores a per-user email address, rating, and play counter. */ import { ByteVector } from "../../../byteVector.js"; import { Id3v2Frame, Id3v2FrameHeader } from "../id3v2Frame.js"; /** * Popularimeter frame (POPM). * * Structure: email(null-terminated Latin1) + rating(1 byte) + counter(variable, big-endian). */ export declare class PopularimeterFrame extends Id3v2Frame { /** Email address identifying the user this rating belongs to. */ private _email; /** Popularity rating in the range 0–255. */ private _rating; /** Play counter tracking how many times the file has been played. */ private _counter; /** Creates a new, empty POPM frame. */ constructor(); /** Gets the email address identifying the user this rating belongs to. */ get email(): string; /** Sets the email address identifying the user this rating belongs to. */ set email(value: string); /** Rating value 0–255. */ get rating(): number; set rating(value: number); /** Gets the play counter for this frame. */ get counter(): bigint; /** Sets the play counter, clamping negative values to zero. */ set counter(value: bigint); /** * Returns a human-readable summary of the email and rating. * @returns A string of the form `" /255"`. */ toString(): string; /** @internal Create from raw frame data. */ static fromData(data: ByteVector, header: Id3v2FrameHeader, version: number): PopularimeterFrame; /** * Parses the binary payload of the POPM frame. * @param data - Raw field bytes beginning with the null-terminated email address. * @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 null-terminated email, rating byte, and big-endian play counter. */ protected renderFields(_version: number): ByteVector; } //# sourceMappingURL=popularimeterFrame.d.ts.map