import { FileValidationResult } from '../utils/fileValidation';
export type SingleFileUploadStatus = 'idle' | 'uploading' | 'success' | 'error';
export interface SingleFileUploadProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'type' | 'accept' | 'disabled' | 'className'> {
    /**
     * Title di dalam upload area (default: "Unggah File").
     */
    title?: string;
    /**
     * Description di dalam upload area.
     */
    description?: string;
    /**
     * Tipe file yang diizinkan (MIME types, e.g., "image/*,application/pdf").
     */
    accept?: string;
    /**
     * Ukuran maksimum file dalam bytes (0 = unlimited).
     */
    maxSize?: number;
    /**
     * Ekstensi file yang diizinkan (e.g., ['png', 'jpg', 'pdf']).
     */
    allowedExtensions?: string[];
    /**
     * Validasi magic number (file signature) sesuai rekomendasi OWASP.
     * Default: true untuk security maksimal.
     */
    validateMagicNumber?: boolean;
    /**
     * Apakah disabled.
     */
    disabled?: boolean;
    /**
     * ClassName tambahan.
     */
    className?: string;
    /**
     * Progress upload (0-100).
     */
    progress?: number;
    /**
     * Status upload.
     */
    status?: SingleFileUploadStatus;
    /**
     * Callback ketika file berubah.
     */
    onChange?: (file: File | null, error: FileValidationResult | null) => void;
    /**
     * Callback ketika file dihapus.
     */
    onRemove?: () => void;
}
export default function SingleFileUpload({ title, description, accept, maxSize, allowedExtensions, validateMagicNumber, disabled, className, progress: externalProgress, status: externalStatus, onChange, onRemove, ...rest }: SingleFileUploadProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=SingleFileUpload.d.ts.map