export interface AudioMetadata { filePath: string; title?: string; artist?: string; album?: string; albumArtist?: string; composer?: string; genre?: string; year?: number; trackNumber?: number; totalTracks?: number; discNumber?: number; totalDiscs?: number; duration?: number; bitrate?: number; sampleRate?: number; channels?: number; format: string; hasEmbeddedArtwork: boolean; extractedAt: Date; } export interface ProgressUpdate { processed: number; total: number; currentFile?: string; currentStage?: "reading" | "extracting" | "caching"; errors: number; warnings: number; } export type ProgressCallback = (update: ProgressUpdate) => void; export interface AudioMetadataOptions { extractArtwork?: boolean; extractLyrics?: boolean; cacheResults?: boolean; concurrency?: number; onProgress?: ProgressCallback; } export declare class AudioMetadataService { private readonly supportedFormats; getSupportedFormats(): string[]; extract(filePath: string, options?: AudioMetadataOptions): Promise; extractBatch(filePaths: string[], options?: AudioMetadataOptions): Promise; /** * Check if an audio file has embedded metadata. * Path is validated upstream by PathValidatorService before being passed to this service. */ hasMetadata(filePath: string): Promise; private createEmptyMetadata; /** * Parse MP3 file metadata. * Path is validated upstream by PathValidatorService before being passed to this service. */ private parseMP3; private parseID3Frame; private decodeUTF16; private hasEmbeddedArtworkInID3; private hasID3v1; /** * Parse FLAC file metadata. * Path is validated upstream by PathValidatorService before being passed to this service. */ private parseFLAC; private parseVorbisComments; /** * Parse M4A/AAC file metadata. * Path is validated upstream by PathValidatorService before being passed to this service. */ private parseM4A; private parseMP4Container; private parseMP4String; private parseMP4Binary; private parseOGG; private parseGeneric; private cleanString; private getGenreName; } //# sourceMappingURL=audio-metadata.service.d.ts.map