UNPKG

image-asset-manager

Version:

A comprehensive image asset management tool for frontend projects

135 lines 4.59 kB
import { ImageFile, UsageAnalysis, Reference } from "../types"; import { SafeDeletionSuggestion } from "./ImageAnalyzer"; /** * Interface for usage analysis statistics */ export interface UsageStatistics { totalFiles: number; usedFiles: number; unusedFiles: number; totalReferences: number; averageReferencesPerFile: number; mostReferencedFiles: Array<{ file: ImageFile; count: number; }>; } /** * Interface for file usage report */ export interface FileUsageReport { file: ImageFile | null; isUsed: boolean; usageCount: number; references: Reference[]; referencesByType: Record<string, number>; referencesByFile: Record<string, number>; } /** * Interface for cleanup candidates */ export interface CleanupCandidates { unused: ImageFile[]; lowUsage: Array<{ file: ImageFile; usageCount: number; }>; suggestions: SafeDeletionSuggestion[]; } /** * Interface for usage patterns analysis */ export interface UsagePatterns { mostUsedFiles: Array<{ file: ImageFile; count: number; }>; leastUsedFiles: Array<{ file: ImageFile; count: number; }>; importTypeDistribution: Record<string, number>; fileTypeUsage: Record<string, { used: number; unused: number; }>; directoryUsage: Record<string, { used: number; unused: number; }>; } /** * Class for integrating usage analysis functionality * This class provides methods for analyzing image usage in a project, * identifying unused files, and generating reports and suggestions */ export declare class UsageAnalysisIntegration { private codeScanner; private imageAnalyzer; constructor(); /** * Analyze usage of image files in the project * @param projectPath Path to the project root * @param imageFiles Array of image files to analyze * @returns UsageAnalysis object containing usage information */ analyzeUsage(projectPath: string, imageFiles: ImageFile[]): Promise<UsageAnalysis>; /** * Get detailed usage statistics for the project * @param usageAnalysis The usage analysis object * @returns Statistics about image usage in the project */ getUsageStatistics(usageAnalysis: UsageAnalysis): UsageStatistics; /** * Generate safe deletion suggestions for unused files * @param unusedFiles Array of unused image files * @param projectPath Path to the project root * @returns Array of deletion suggestions with risk assessment */ generateSafeDeletionSuggestions(unusedFiles: ImageFile[], projectPath: string): Promise<SafeDeletionSuggestion[]>; /** * Get detailed usage report for a specific file * @param fileId ID of the image file * @param usageAnalysis The usage analysis object * @returns Detailed report of how the file is used */ getFileUsageReport(fileId: string, usageAnalysis: UsageAnalysis): FileUsageReport; /** * Get files that are likely candidates for cleanup * @param usageAnalysis The usage analysis object * @param options Options for filtering cleanup candidates * @returns Object containing unused and low-usage files */ getCleanupCandidates(usageAnalysis: UsageAnalysis, options?: { includeUnused?: boolean; includeLowUsage?: boolean; maxUsageCount?: number; excludePatterns?: string[]; }): Promise<CleanupCandidates>; /** * Analyze usage patterns across the project * @param usageAnalysis The usage analysis object * @returns Analysis of usage patterns in the project */ analyzeUsagePatterns(usageAnalysis: UsageAnalysis): UsagePatterns; /** * Find potentially related files based on naming patterns * @param targetFile The target image file * @param allFiles Array of all image files * @returns Array of related image files */ findRelatedFiles(targetFile: ImageFile, allFiles: ImageFile[]): ImageFile[]; /** * Batch process all unused files to generate deletion recommendations * @param usageAnalysis The usage analysis object * @returns Object with detailed recommendations for each unused file */ generateUnusedFilesReport(usageAnalysis: UsageAnalysis): Promise<{ unusedCount: number; totalSize: number; recommendations: SafeDeletionSuggestion[]; byRiskLevel: Record<string, number>; byDirectory: Record<string, number>; }>; } //# sourceMappingURL=UsageAnalysisIntegration.d.ts.map