import { CategoryName } from "../types.js"; export interface FileMetadata { date?: Date; artist?: string; album?: string; title?: string; year?: number; } export declare class MetadataService { private pathValidator; private audioMetadataService; private imageMetadataService; constructor(); /** * Extract metadata from a file for organization purposes. * Guaranteed to NOT return sensitive location data. * Uses specialized services for enhanced metadata extraction. */ getMetadata(filePath: string, category: CategoryName): Promise; /** * Get a relative subpath based on file metadata. * e.g. "2024/01" for images, "Artist/Album" for audio. * Returns empty string if no relevant metadata found. */ getMetadataSubpath(filePath: string, category: CategoryName): Promise; /** * Enhanced image metadata extraction using ImageMetadataService */ private getImageMetadataEnhanced; /** * Enhanced audio metadata extraction using AudioMetadataService */ private getAudioMetadataEnhanced; /** * Legacy image metadata extraction using exif-parser */ private getImageMetadata; /** * Legacy audio metadata extraction using music-metadata */ private getAudioMetadata; /** * Sanitize metadata values to be safe for file paths. * Replaces / \ : * ? " < > | with _ */ private sanitizeMetadataValue; /** * Extract detailed metadata for the inspection tool * Uses specialized services for enhanced extraction */ extractMetadata(filePath: string, ext: string): Promise | null>; /** * Legacy image metadata extraction for inspection tool */ private extractImageMetadataLegacy; /** * Legacy audio metadata extraction for inspection tool */ private extractAudioMetadataLegacy; } //# sourceMappingURL=metadata.service.d.ts.map