type UploaderVariant = 'multiple' | 'single' | 'avatar'; type UploaderView = 'list' | 'grid'; /** Dropzone chrome layout (ignored for avatar / filled single preview). */ type UploaderLayout = 'horizontal' | 'vertical' | 'compact'; interface FileUploaderProps { id?: string; label?: string; helperText?: string; accept?: string; variant?: UploaderVariant; view?: UploaderView; /** * Empty dropzone orientation. * - `horizontal` — icon + text in a row (default) * - `vertical` — stacked, better for narrow sidebars * - `compact` — tight horizontal strip */ layout?: UploaderLayout; showViewToggle?: boolean; /** When false, only the dropzone is shown (parent owns the file list). */ showFileList?: boolean; maxSizeMb?: number; disabled?: boolean; /** * External preview URL for `single` / `avatar` when no File is selected yet * (e.g. existing remote image in an editor inspector). */ src?: string; /** Display name when using `src` without a File */ srcName?: string; class?: string; onchange?: (files: File[]) => void; /** Fired when the user clears the current file / src preview */ onclear?: () => void; } declare const FileUploader: import("svelte").Component; type FileUploader = ReturnType; export default FileUploader;