import type { WasmModule } from "../wasm.js"; import type { AudioFileInput, OpenOptions, TagInput } from "../types.js"; import type { LoadTagLibOptions } from "../runtime/loader-types.js"; import { type NamedAudioInput } from "../types/audio-formats.js"; import type { AudioFile } from "./audio-file-interface.js"; /** * Main TagLib interface for audio metadata operations. */ export declare class TagLib { private readonly module; constructor(module: WasmModule); /** * Initialize the TagLib Wasm module and return a ready-to-use instance. * @param options - Wasm loading configuration (binary, URL, backend selection). * @returns A configured TagLib instance. * @throws {TagLibInitializationError} If the Wasm module fails to load. */ static initialize(options?: LoadTagLibOptions): Promise; /** * Open an audio file for reading and writing metadata. * @param input - File path, Uint8Array, ArrayBuffer, File object, or NamedAudioInput. * @param options - Partial-loading options for large files. * @returns An AudioFile instance (use `using` for automatic cleanup). * @throws {TagLibInitializationError} If the module is not properly initialized. * @throws {InvalidFormatError} If the file is corrupted or unsupported. */ open(input: AudioFileInput, options?: OpenOptions): Promise; /** * Open, modify, and save an audio file in one operation. * * With a file path, edits in place on disk. With a buffer/File, returns the modified data. * @param input - File path for in-place editing, or buffer/File for buffer-based editing. * @param fn - Callback receiving the AudioFile. Changes are auto-saved after it returns. * @returns Nothing for file paths; modified Uint8Array for buffers. * @throws {InvalidFormatError} If the file is corrupted or unsupported. * @throws {FileOperationError} If saving to disk fails. */ edit(input: string, fn: (file: AudioFile) => void | Promise): Promise; edit(input: Uint8Array | ArrayBuffer | File | NamedAudioInput, fn: (file: AudioFile) => void | Promise): Promise; /** * Update tags in a file and save to disk in one operation. * @param path - Path to the audio file. * @param tags - Tag fields to update (partial update supported). * @throws {InvalidFormatError} If the file is corrupted or unsupported. * @throws {FileOperationError} If saving to disk fails. */ updateFile(path: string, tags: Partial): Promise; /** * Copy an audio file to a new path with updated tags. * @param sourcePath - Path to the source audio file. * @param destPath - Destination path for the tagged copy. * @param tags - Tag fields to set on the copy. * @throws {InvalidFormatError} If the source file is corrupted or unsupported. * @throws {FileOperationError} If reading or writing fails. */ copyWithTags(sourcePath: string, destPath: string, tags: Partial): Promise; /** Returns the taglib-wasm version with embedded TagLib version. */ version(): string; private taglibVersion; } /** * Create a TagLib instance from a pre-loaded Wasm module. */ export declare function createTagLib(module: WasmModule): Promise; //# sourceMappingURL=taglib-class.d.ts.map