export interface FileUploadFile { file: File; id: string; status: 'pending' | 'uploading' | 'complete' | 'error'; progress: number; preview?: string; error?: string; } export interface FileUploadRejection { file: File; reason: 'file-too-large' | 'file-too-small' | 'file-invalid-type' | 'too-many-files'; } export interface FileUploadHandle { getFiles: () => Array<{ id: string; name: string; size: number; status: FileUploadFile['status']; }>; removeFile: (id: string) => void; clear: () => void; } export interface FileUploadProps { /** Opaque instance id — emitted as `data-component-id` for the agent registry. */ id?: string; accept?: Record; maxSize?: number; minSize?: number; maxFiles?: number; multiple?: boolean; disabled?: boolean; strictAccept?: boolean; onDrop?: (accepted: File[], rejected: FileUploadRejection[]) => void; onUpload?: (file: File, helpers: { signal: AbortSignal; onProgress: (percent: number) => void; }) => Promise; onRemove?: (file: FileUploadFile) => void; onReject?: (rejections: FileUploadRejection[]) => void; variant?: 'dropzone' | 'button' | 'both'; showPreview?: boolean; className?: string; } export declare const browseButtonVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string; export declare const FileUpload: import("react").ForwardRefExoticComponent>; //# sourceMappingURL=file-upload.d.ts.map