import { type FileExtension } from '../FileTypeIcon/index.js'; declare const fileUploadAreaVariants: (props?: ({ state?: "default" | "disabled" | "hover" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface FileUploadAreaProps extends Omit, 'onDrop'> { /** Text for the click action */ clickText?: string; /** Text for drag and drop hint */ dragText?: string; /** Supporting text showing accepted formats */ supportingText?: string; /** Whether the upload area is disabled */ disabled?: boolean; /** Callback when files are dropped or selected */ onFilesSelected?: (files: FileList) => void; /** Accept attribute for file input */ accept?: string; /** Whether multiple files can be selected */ multiple?: boolean; } declare const FileUploadArea: import("react").ForwardRefExoticComponent>; export type FileUploadStatus = 'uploading' | 'complete' | 'error' | 'disabled' | 'cloud'; declare const fileUploadItemVariants: (props?: ({ status?: "cloud" | "complete" | "disabled" | "error" | "uploading" | null | undefined; mobile?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface FileUploadItemProps extends Omit, 'children'> { /** File name to display */ fileName: string; /** File size string (e.g., "200 KB", "16 MB") */ fileSize?: string; /** File extension for icon display */ fileExtension?: FileExtension | string; /** Upload progress (0-100) */ progress?: number; /** Whether metadata should include the derived upload percentage */ showProgress?: boolean; /** Upload status */ status?: FileUploadStatus; /** Render the 100x100 mobile mini-card from the Figma component set */ mobile?: boolean; /** Custom element to render next to the title (e.g., badge, tag, icon) */ titleAddon?: React.ReactNode; /** Called when delete/cancel is clicked */ onRemove?: () => void; /** Called when cancel is clicked (during upload) */ onCancel?: () => void; /** Called when retry is clicked (on error) */ onRetry?: () => void; /** Custom actions to render (replaces default RemoveButton when provided) */ actions?: React.ReactNode; } declare const FileUploadItem: import("react").ForwardRefExoticComponent>; export interface UploadFile { id: string; name: string; size: string; extension?: FileExtension; progress: number; showProgress?: boolean; status: FileUploadStatus; } export type FileUploadView = 'default' | 'stack' | 'list'; export interface FileUploadProps extends Omit, 'children'> { /** Files in the upload queue */ files?: UploadFile[]; /** Props for the upload area */ areaProps?: Omit; /** Help text displayed below the upload target */ helpText?: React.ReactNode; /** Called when files are selected */ onFilesSelected?: (files: FileList) => void; /** Called when a file is removed */ onFileRemove?: (fileId: string) => void; /** Called when a file upload is cancelled */ onFileCancel?: (fileId: string) => void; /** Called when a failed file upload is retried */ onFileRetry?: (fileId: string) => void; /** Uploaded-file presentation from the Figma component set */ fileView?: FileUploadView; /** Show the optional upload-from-URL control */ uploadFromUrl?: boolean; /** Controlled URL value */ uploadUrl?: string; /** Initial URL value for uncontrolled usage */ defaultUploadUrl?: string; /** Placeholder shown in the URL input */ uploadUrlPlaceholder?: string; /** Called when the URL input changes */ onUploadUrlChange?: (url: string) => void; /** Called when the URL upload action is submitted */ onUrlUpload?: (url: string) => void; /** Controlled selected file IDs for list view */ selectedFileIds?: string[]; /** Initially selected file IDs for uncontrolled list view */ defaultSelectedFileIds?: string[]; /** Called when list-view selection changes */ onSelectedFileIdsChange?: (fileIds: string[]) => void; /** Called when selected files are downloaded from list view */ onFilesDownload?: (fileIds: string[]) => void; } declare const FileUpload: import("react").ForwardRefExoticComponent>; export { FileUpload, FileUploadArea, FileUploadItem, fileUploadAreaVariants, fileUploadItemVariants, };