import type React from 'react';
export interface ImageUploadProps {
    /** File currently selected */
    selectedFile?: File | null;
    /** Upload progress (0-100). If not provided, progress bar won't show */
    uploadProgress?: number;
    /** Show progress bar even if uploadProgress is 100 */
    showProgress?: boolean;
    /** Callback when a file is selected */
    onFileSelect?: (file: File) => void;
    /** Callback when file is removed */
    onRemoveFile?: () => void;
    /** Custom button text when no file is selected */
    buttonText?: string;
    /** Custom button icon when no file is selected */
    buttonIcon?: React.ReactNode;
    /** Accept specific file types (default: "image/*") */
    accept?: string;
    /** Disabled state */
    disabled?: boolean;
    /** Custom class name */
    className?: string;
    /** Max file size in bytes */
    maxSize?: number;
    /** Callback when file size exceeds maxSize */
    onSizeError?: (file: File, maxSize: number) => void;
    /** Callback when invalid file type is selected */
    onTypeError?: (file: File) => void;
    /** Variant of the upload button */
    variant?: 'default' | 'compact';
}
export default function ImageUpload({ selectedFile, onFileSelect, onRemoveFile, buttonText, buttonIcon, accept, disabled, className, maxSize, onSizeError, onTypeError, variant, }: Readonly<ImageUploadProps>): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=ImageUpload.d.ts.map