import type { AudioFile } from "../taglib/audio-file-interface.js";
import type { ExtendedTag, PropertyMap, TagInput } from "../types.js";
/**
 * Build a complete ExtendedTag from an open file: the text PropertyMap PLUS the
 * structured fields that ride their own accessors (pictures, ratings, lyrics,
 * chapters, bext/bextData, ixml). readTags and the batch readers share this so
 * the structured ExtendedTag fields are actually populated, not just declared
 * (taglib-0co). Each field is included only when present, mirroring how
 * {@link mapPropertiesToExtendedTag} omits absent text properties.
 */
export declare function readExtendedTag(audioFile: AudioFile): ExtendedTag;
export declare function mapPropertiesToExtendedTag(props: PropertyMap): ExtendedTag;
export declare function mergeTagUpdates(file: AudioFile, tags: Partial<TagInput>): void;
export declare function normalizeTagInput(input: Partial<TagInput>): PropertyMap;
//# sourceMappingURL=tag-mapping.d.ts.map