import { AuthParams } from '@zeniai/client-epic-state';
export interface UseMissingReceiptsBulkUploadFilesParams {
    authParams: AuthParams;
    bulkUploadEndpoint?: string;
    onBulkUploadFilesFallback?: (files: File[]) => void;
    /** Report upload progress (0–100) for the nav bar bar; used before success to snap to 100%. */
    onBulkUploadProgress?: (percent: number) => void;
    onBulkUploadSuccess?: (batchId: string) => void;
    /**
     * When using `bulkUploadEndpoint`, Redux `bulkUploadReceipts` is not dispatched; call this so
     * store `uploadedFileCount` stays in sync (banner, selectors).
     */
    onBulkUploadUploadedFileCount?: (count: number) => void;
    /** Surfaces upload errors (server or network) as a snackbar in the host app. */
    onUploadError?: (message: string) => void;
}
/**
 * Upload + drag/drop state for Missing Receipts bulk receipt flow.
 * Used by ExpenseAutomationPage so bulk upload chrome (progress, matching, email, policy)
 * can render in NavBarWithHeader while MissingReceiptsPage keeps list-level drag targets.
 */
export declare function useMissingReceiptsBulkUploadFiles(params: UseMissingReceiptsBulkUploadFilesParams): {
    isDraggingFiles: boolean;
    uploadFileCount: number;
    isUploading: boolean;
    uploadError: string | null;
    clearUploadError: () => void;
    handleBulkUploadFiles: (files: File[]) => Promise<void>;
    handleDragOver: (e: React.DragEvent) => void;
    handleDragLeave: (e: React.DragEvent) => void;
    handleDrop: (e: React.DragEvent) => void;
};
export type MissingReceiptsBulkUploadInteractions = ReturnType<typeof useMissingReceiptsBulkUploadFiles>;
