/** * Options for image compression */ export interface ImageCompressOptions { /** Maximum width in pixels (default: 800) */ maxWidth?: number; /** Maximum height in pixels (default: 800) */ maxHeight?: number; /** Quality 0-1 (default: 0.8) */ quality?: number; /** Output MIME type (default: 'image/jpeg') */ mimeType?: 'image/jpeg' | 'image/png' | 'image/webp'; } /** * Options for image validation */ export interface ImageValidateOptions { /** Maximum file size in bytes (default: 10MB) */ maxSize?: number; /** Allowed MIME types (default: ['image/jpeg', 'image/png', 'image/webp', 'image/gif']) */ allowedTypes?: string[]; /** Minimum width in pixels */ minWidth?: number; /** Minimum height in pixels */ minHeight?: number; } /** * Result of image validation */ export interface ImageValidationResult { valid: boolean; error?: 'invalidType' | 'fileTooLarge' | 'imageTooSmall'; message?: string; } /** * Processed image result */ export interface ProcessedImage { /** Processed image as Blob */ blob: Blob; /** Data URL for preview */ dataUrl: string; /** Final width in pixels */ width: number; /** Final height in pixels */ height: number; /** File size in bytes */ size: number; } /** * Crop data for manual cropping */ export interface CropData { /** X position of crop area */ x: number; /** Y position of crop area */ y: number; /** Width of crop area */ width: number; /** Height of crop area */ height: number; } /** * Default values for image processing */ export declare const IMAGE_DEFAULTS: { maxWidth: number; maxHeight: number; quality: number; mimeType: "image/jpeg"; maxSize: number; allowedTypes: string[]; thumbnailSize: number; };