import { type Dispatch, type SetStateAction } from "react";
import { type IFileRejection, type IFileValidationResult, type IFileValidationRules } from "../types.js";
/**
 * @internal
 */
export interface IUseFileSelectionConfig {
    rules?: IFileValidationRules;
    multiple?: boolean;
    onValidateFile?: (file: File) => IFileValidationResult;
    onFilesAccepted?: (files: File[]) => void;
    onFilesRejected?: (rejections: IFileRejection[]) => void;
}
/**
 * @internal
 */
export interface IUseFileSelectionResult {
    selectedFiles: File[];
    rejections: IFileRejection[];
    selectFiles: (files: File[] | FileList | null | undefined) => void;
    setSelectedFiles: Dispatch<SetStateAction<File[]>>;
    removeFile: (file: File) => void;
    clearSelection: () => void;
}
/**
 * @internal
 */
export declare function useFileSelection({ rules, multiple, onValidateFile, onFilesAccepted, onFilesRejected }?: IUseFileSelectionConfig): IUseFileSelectionResult;
//# sourceMappingURL=useFileSelection.d.ts.map