import { Ref } from 'vue'; interface FileUploadOptions { /** * Accepted file types (MIME types) */ accept?: Ref; /** * Maximum file size in bytes */ maxSize?: Ref; /** * Maximum image width in pixels */ maxWidth?: Ref; /** * Maximum image height in pixels */ maxHeight?: Ref; /** * Callback when file is selected */ onFileSelect?: (file: File) => void; /** * Callback when file is removed */ onFileRemove?: () => void; /** * Callback when validation error occurs */ onError?: (error: string) => void; } interface ValidationResult { valid: boolean; error?: string; } /** * Composable for managing file upload functionality * Provides file validation, drag-and-drop, preview generation, and cleanup */ export declare function useFileUpload(options?: FileUploadOptions): { isDragging: Ref; previewUrl: Ref; currentFile: Ref<{ readonly lastModified: number; readonly name: string; readonly webkitRelativePath: string; readonly size: number; readonly type: string; arrayBuffer: () => Promise; bytes: () => Promise>; slice: (start?: number, end?: number, contentType?: string) => Blob; stream: () => ReadableStream>; text: () => Promise; } | null, File | { readonly lastModified: number; readonly name: string; readonly webkitRelativePath: string; readonly size: number; readonly type: string; arrayBuffer: () => Promise; bytes: () => Promise>; slice: (start?: number, end?: number, contentType?: string) => Blob; stream: () => ReadableStream>; text: () => Promise; } | null>; validationError: Ref; handleFileSelect: (file: File) => Promise; handleFileRemove: () => void; handleDragEnter: (event: DragEvent) => void; handleDragOver: (event: DragEvent) => void; handleDragLeave: (event: DragEvent) => void; handleDrop: (event: DragEvent) => Promise; validateFile: (file: File) => Promise; }; export {}; //# sourceMappingURL=useFileUpload.d.ts.map