export interface RasterProcessingOptions { quality: number; lossless?: boolean; qualitySize: string | null; width: number | null; height: number | null; modeWH: "cover" | "proportion" | "fill" | null; preventEnlargement?: boolean; } export declare class RasterOptimizer { /** * Convert PNG to WebP */ convertToWebP(inputPath: string, outputPath: string, settings: RasterProcessingOptions): Promise<{ originalSize: number; optimizedSize: number; saved: number; }>; /** * Convert PNG to GIF */ convertToGif(inputPath: string, outputPath: string, settings: RasterProcessingOptions): Promise<{ originalSize: number; optimizedSize: number; saved: number; }>; /** * Optimize PNG */ optimizePng(inputPath: string, outputPath: string, settings: RasterProcessingOptions): Promise<{ originalSize: number; optimizedSize: number; saved: number; }>; /** * Optimize JPEG */ optimizeJpeg(inputPath: string, outputPath: string, settings: RasterProcessingOptions): Promise<{ originalSize: number; optimizedSize: number; saved: number; }>; /** * Apply resize based on width/height/modeWH settings */ private applyResize; /** * Enforce qualitySize by iteratively reducing quality */ private enforceQualitySize; private wouldEnlarge; /** * Parse qualitySize string to bytes */ private parseQualitySize; /** * Get WebP quality based on settings */ private getWebPQuality; /** * Get PNG compression level based on quality */ private getPngCompressionLevel; /** * Get JPEG quality based on settings */ private getJpegQuality; }