import { FocusEvent, ReactNode } from "react"; export interface IFileController { readonly isImage: boolean; readonly limit: number; readonly allowedExtensions: string[]; readonly upload: (files: FileList, service: IFileService | undefined, onProgress: (percent: number) => void) => Promise; readonly download: (service?: IFileService) => Promise; readonly delete: (service?: IFileService) => Promise; readonly fileSlot: { readonly hasValue: boolean; readonly string: string; readonly reference: string | undefined; readonly isLocked: boolean; readonly isFrozen: boolean; }; } export interface IFileService { readonly get: (file: string) => Promise; readonly put: (file: File, onProgress?: (percentage: number) => void) => Promise; readonly delete: (file: string) => Promise; } export declare const FileThumbnailFabric: (props: { readonly controller: IFileController; readonly service?: IFileService | undefined; readonly host?: ((props: { children: ReactNode }) => JSX.Element) | undefined; readonly error?: ReactNode; readonly loading?: ReactNode; }) => import("react/jsx-runtime").JSX.Element; export declare const FileFabric: (props: { readonly styles: { readonly backgroundColor: string; readonly borderColor: string; readonly borderSize?: number; readonly roundness?: number; readonly textColor?: string; readonly errorColor: string; readonly scale?: number; }; readonly controller: IFileController; readonly labels: ( id: | "explanation" | "dragging" | "limit" | "extensions" | "retry" | "progress" | "delete" | "invalid-file" | "invalid-amount" | "invalid-extension" | "invalid-size" | "error", message: string ) => string; readonly service?: IFileService | undefined; readonly disabled?: boolean | undefined; readonly readOnly?: boolean | undefined; readonly error?: boolean | undefined; readonly tabIndex?: number | undefined; readonly ariaDescribedBy?: string | undefined; readonly onFocus?: ((e: FocusEvent) => void) | undefined; readonly onBlur?: ((e: FocusEvent) => void) | undefined; readonly onAutoFocus?: ((el: HTMLDivElement | null) => void) | undefined; readonly onSubmit?: (() => void) | undefined; readonly onCancel?: (() => void) | undefined; }) => import("react/jsx-runtime").JSX.Element;