import { FilesDropzoneProps } from '~/components/FilesDropzone';
import { FileProcessorFunction } from './types';
import { ProcessorProps } from '~/components/FilesProcessor/Processor';
export type { FileProcessorFunction };
type ValueItem = {
    id: string | number;
    name: string;
};
type FilesProcessorProps<T> = {
    /**
     * Function that processes file (uploads, parses, etc.)
     *
     * Accepts 3 arguments:<br/>
     * `file: File`<br/>
     * `onProgress: (totalProgress: number, currentProgress: number) => void,`<br/>
     * `registerOnCancel: (onCancel: Function) => void` - processing cancellation function
     */
    processFile: FileProcessorFunction<T>;
    /**
     * Called when files are uploaded/reuploaded
     * @param results array of results from `processFile`
     */
    onDone: (results: T[]) => void;
    /**
     * Files list to display
     *
     * `type ValueItem = {id: string | number; name: string;};`
     */
    value?: ValueItem[];
    /**
     * Used in conjunction with `value`. Called when user presses "delete" button. If undefined - no button is shown
     * @param item
     */
    onDelete?: (item: ValueItem) => void;
    /**
     * Fired when file(s) selected for processing
     */
    onStartProcessing?: (files: File[]) => void;
    /**
     * Fired when file processing failed or cancelled
     */
    onProcessingFailure?: (file: File, isCancelled?: boolean, error?: Error) => void;
    /**
     * Controls if multiple files can be processed
     */
    multiple?: FilesDropzoneProps['multiple'];
    /**
     * Array of or comma-separated MIME types/File Extensions to accept
     *
     * See `FilesDropzone`'s props
     */
    accept?: FilesDropzoneProps['accept'];
    /**
     * Maximum files to accept
     */
    maxFiles?: FilesDropzoneProps['maxFiles'];
    /**
     * Maximum file size to accept
     */
    maxSize?: FilesDropzoneProps['maxSize'];
    /**
     * Allows custom progress units
     * @param total total progress value
     * @param current current progress value
     */
    formatProgress?: ProcessorProps<any>['formatProgress'];
    className?: string;
};
export declare const FilesProcessor: <T extends any>(props: FilesProcessorProps<T>) => JSX.Element;
//# sourceMappingURL=FilesProcessor.d.ts.map