import { CropData, ImageCompressOptions, ImageValidateOptions, ImageValidationResult, ProcessedImage } from './types'; import * as i0 from "@angular/core"; /** * ImageService * * Service for image processing including compression, thumbnails, cropping and validation. * Uses HTML Canvas for all operations - no external dependencies. * * @example * ```typescript * const imageService = inject(ImageService); * * // Compress an image * const compressed = await imageService.compress(file, { maxWidth: 800, quality: 0.8 }); * * // Generate thumbnail * const thumb = await imageService.thumbnail(file, 150); * * // Validate before processing * const validation = imageService.validate(file, { maxSize: 5 * 1024 * 1024 }); * if (!validation.valid) { * console.error(validation.message); * } * ``` */ export declare class ImageService { /** * Compress an image maintaining aspect ratio * @param file - File or Blob to compress * @param options - Compression options * @returns Promise with processed image data */ compress(file: File | Blob, options?: ImageCompressOptions): Promise; /** * Generate a square thumbnail from an image * @param file - File or Blob to process * @param size - Thumbnail size in pixels (default: 150) * @returns Promise with processed thumbnail */ thumbnail(file: File | Blob, size?: number): Promise; /** * Crop an image with specific coordinates * @param file - File or Blob to crop * @param cropData - Crop coordinates and dimensions * @param options - Optional compression options for output * @returns Promise with cropped image */ crop(file: File | Blob, cropData: CropData, options?: ImageCompressOptions): Promise; /** * Validate an image file before processing * @param file - File to validate * @param options - Validation options * @returns Validation result with error details if invalid */ validate(file: File, options?: ImageValidateOptions): ImageValidationResult; /** * Validate image dimensions (async - requires loading image) * @param file - File to validate * @param options - Validation options with minWidth/minHeight * @returns Promise with validation result */ validateDimensions(file: File, options: Pick): Promise; /** * Convert a Blob/File to a data URL */ toDataUrl(file: File | Blob): Promise; /** * Convert a data URL to a Blob */ dataUrlToBlob(dataUrl: string): Blob; private loadImage; private calculateDimensions; private canvasToBlob; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }