import { MaybeRef } from '@vueuse/core'; import { MaybeNullOrUndefined, Nullable, Optional } from '../../../../shared/dist/esm/index'; import { CSSProperties } from 'vue'; import { BaseError } from '../../lib'; import { BlobUploadStatus } from '@speckle/shared/blobs'; /** * A file, as emitted out from FileUploadZone */ export interface UploadableFileItem { file: File; error: Nullable; /** * You can use this ID to check for File equality */ id: string; } export type BlobPostResultItem = { blobId?: string; fileName?: string; fileSize?: number; formKey: string; /** * Success = 1, Failure = 2 */ uploadStatus: BlobUploadStatus; uploadError: string; }; export interface UploadFileItem extends UploadableFileItem { /** * Progress between 0 and 100 */ progress: number; /** * When upload has finished this contains a BlobPostResultItem */ result: Optional; /** * When a blob gets assigned to a resource, it should count as in use, and this will * prevent it from being deleted as junk */ inUse?: boolean; } export declare function usePrepareUploadableFiles(params: { disabled?: MaybeRef>; accept?: MaybeRef>; multiple?: MaybeRef>; countLimit?: MaybeRef>; sizeLimit: MaybeRef; }): { /** * Validate incoming files and build UploadableFileItem structs out of them */ buildUploadableFiles: (files: File[]) => UploadableFileItem[] | undefined; }; export declare class FileTooLargeError extends BaseError { static defaultMessage: string; } export declare function useFileUploadProgressCore(params: { item: MaybeRef>; }): { errorMessage: import('vue').ComputedRef; progressBarClasses: import('vue').ComputedRef; progressBarStyle: import('vue').ComputedRef; };