/** @packageDocumentation ASF tag implementation with PropertyMap and complex property (picture) support. */ import { Tag } from "../tag.js"; import { PropertyMap } from "../toolkit/propertyMap.js"; import type { VariantMap } from "../toolkit/variant.js"; import { AsfAttribute } from "./asfAttribute.js"; /** * Represents the collection of metadata stored in an ASF file. * * Simple fields (title, artist, copyright, comment, rating) are stored * directly. All other attributes are held in an attribute-list map keyed * by the ASF attribute name. */ export declare class AsfTag extends Tag { /** Track title from the Content Description Object. */ private _title; /** Lead artist from the Content Description Object. */ private _artist; /** Copyright notice from the Content Description Object. */ private _copyright; /** User comment from the Content Description Object. */ private _comment; /** Content rating from the Content Description Object. */ private _rating; /** All other attributes keyed by ASF attribute name. */ private _attributeListMap; /** Track title (Content Description Object). */ get title(): string; /** @param value - New title. */ set title(value: string); /** Lead artist (Content Description Object). */ get artist(): string; /** @param value - New artist. */ set artist(value: string); /** * Album title, read from the `WM/AlbumTitle` attribute. * Returns `""` when not present. */ get album(): string; /** @param value - New album title; sets the `WM/AlbumTitle` attribute. */ set album(value: string); /** User comment (Content Description Object). */ get comment(): string; /** @param value - New comment. */ set comment(value: string); /** * Genre, read from the `WM/Genre` attribute. * Returns `""` when not present. */ get genre(): string; /** @param value - New genre; sets the `WM/Genre` attribute. */ set genre(value: string); /** * Release year, read from the `WM/Year` attribute. * Returns `0` when not present. */ get year(): number; /** @param value - New year; sets the `WM/Year` attribute. */ set year(value: number); /** * Track number, read from `WM/TrackNumber` (falling back to `WM/Track`). * Returns `0` when not present. */ get track(): number; /** @param value - New track number; sets the `WM/TrackNumber` attribute. */ set track(value: number); /** Copyright notice (Content Description Object). */ get copyright(): string; /** @param value - New copyright string. */ set copyright(value: string); /** Content rating (Content Description Object). */ get rating(): string; /** @param value - New rating string. */ set rating(value: string); /** The full map of all ASF attributes, keyed by attribute name. */ get attributeListMap(): Map; /** * Return `true` if `key` has at least one attribute in the map. * @param key - ASF attribute name. */ contains(key: string): boolean; /** * Remove all attributes stored under `key`. * @param key - ASF attribute name. */ removeItem(key: string): void; /** * Return the list of attributes stored under `name`, or `[]` when absent. * @param name - ASF attribute name. */ attribute(name: string): AsfAttribute[]; /** * Replace all attributes for `name` with a single `attribute`. * @param name - ASF attribute name. * @param attribute - The attribute to store. */ setAttribute(name: string, attribute: AsfAttribute): void; /** * Replace all attributes for `name` with the given list. * @param name - ASF attribute name. * @param values - The attribute list to store. */ setAttributeList(name: string, values: AsfAttribute[]): void; /** * Append `attribute` to the list stored under `name`, creating the entry if * it doesn't exist. * * @param name - ASF attribute name. * @param attribute - The attribute to append. */ addAttribute(name: string, attribute: AsfAttribute): void; get isEmpty(): boolean; properties(): PropertyMap; removeUnsupportedProperties(properties: string[]): void; setProperties(props: PropertyMap): PropertyMap; complexPropertyKeys(): string[]; complexProperties(key: string): VariantMap[]; setComplexProperties(key: string, value: VariantMap[]): boolean; } //# sourceMappingURL=asfTag.d.ts.map