import { ProgressCallback } from '@/synapse-client/index';
import { BaseFileUploadArgs } from '@/utils/hooks/useUploadFileEntity/useUploadFiles';
import { FilePreparedForUpload } from './usePrepareFileEntityUpload';
export type UploadFileStatus = 'PREPARING' | 'UPLOADING' | 'PAUSED' | 'CANCELED_BY_USER' | 'FAILED' | 'COMPLETE';
export type TrackedUploadProgress = {
    filePreparedForUpload: FilePreparedForUpload;
    progress: ProgressCallback;
    abortController: AbortController;
    status: UploadFileStatus;
    failureReason?: string;
    fileHandleId?: string;
};
export declare const PENDING_UPLOAD_STATES: TrackedUploadProgress['status'][];
/**
 * Hook used to track the state of multiple file uploads, providing methods that can be used to interact with the upload state.
 */
export declare function useTrackFileUploads(): {
    trackedUploadProgress: Map<File, TrackedUploadProgress>;
    setProgress: (file: File, progress: ProgressCallback) => void;
    setIsUploading: (file: File) => void;
    trackNewFiles: <T extends BaseFileUploadArgs = BaseFileUploadArgs>(...preparedFiles: T[]) => Map<File, TrackedUploadProgress>;
    bytesPendingUpload: number;
    pauseUpload: (file: File) => void;
    cancelUpload: (file: File) => void;
    removeUpload: (file: File) => void;
    setComplete: (file: File, fileHandleId: string) => void;
    setFailed: (file: File, failureReason: string) => void;
    isUploading: boolean;
    isUploadComplete: boolean;
    activeUploadCount: number;
};
//# sourceMappingURL=useTrackFileUploads.d.ts.map