import React from 'react';
export interface BaseImageProps {
    image: File | Blob | string;
    onProcessingComplete?: (processedImage: Blob) => void;
    onError?: (error: Error) => void;
    className?: string;
    style?: React.CSSProperties;
}
export interface ImageCropProps extends BaseImageProps {
    width: number;
    height: number;
    aspectRatio?: number;
    cropX?: number;
    cropY?: number;
    allowResize?: boolean;
    showGrid?: boolean;
    gridColor?: string;
}
export interface ImageCompressProps extends BaseImageProps {
    quality?: number;
    maxSizeMB?: number;
    maxWidthOrHeight?: number;
    onCompressProgress?: (progress: number) => void;
    showProgress?: boolean;
}
export interface ImageResizeProps extends BaseImageProps {
    width: number;
    height: number;
    maintainAspectRatio?: boolean;
    resizeMode?: 'contain' | 'cover' | 'stretch';
}
export interface ImageFormatProps extends BaseImageProps {
    format: 'jpeg' | 'png' | 'webp' | 'gif';
    quality?: number;
}
export interface ImageEffectsProps extends BaseImageProps {
    effect: 'grayscale' | 'invert' | 'sepia' | 'blur' | 'brightness' | 'contrast' | 'saturation';
    intensity?: number;
    blurRadius?: number;
}
export interface ProcessedImageResult {
    blob: Blob;
    url: string;
    originalSize: number;
    processedSize: number;
    width: number;
    height: number;
}
