import React, { HTMLAttributes } from "react"; import { ComponentTranslation } from "../../../utils/i18n/i18n.types.js"; import { FileUploadDropzone, type FileUploadDropzoneProps } from "../dropzone/FileUploadDropzone.js"; import { FileUploadItem, type FileUploadItemProps } from "../item/FileUploadItem.js"; import { FileUploadTrigger, type FileUploadTriggerProps } from "../trigger/FileUploadTrigger.js"; interface FileUploadProps extends HTMLAttributes { children: React.ReactNode; /** * i18n-API for customizing texts and labels */ translations?: ComponentTranslation<"FileUpload">; } interface FileUploadComponent extends React.ForwardRefExoticComponent> { /** * Framed area to drag-n-drop files, upload files with button-click or copy-paste. * @see 🏷️ {@link FileUploadDropzoneProps} * @example * Single file * ```jsx * * ``` * * @example * Multiple files * ```jsx * * ``` * * @example * Error * ```jsx * * ``` */ Dropzone: typeof FileUploadDropzone; /** * Displays a file with status, file size, action and error message. * @see 🏷️ {@link FileUploadItemProps} * @example * Single * ```jsx * * ``` * * @example * Multiple items can be semantically grouped as a list. * ```jsx * * * * * * * * ``` * * @example * Custom file object * ```jsx * * ``` * * @example * Error * ```jsx * * ``` * * @example * Status & actions * ```jsx * * * * * ``` */ Item: typeof FileUploadItem; /** * Wrapper for a button to trigger file select. * @see 🏷️ {@link FileUploadTriggerProps} * @example * ```jsx * * * * ``` */ Trigger: typeof FileUploadTrigger; } /** * A set of components used to upload and display files. * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/fileupload) * @example Dropzone * ```jsx * * ``` * * @example * Items * ```jsx * * * * * ``` */ export declare const FileUpload: FileUploadComponent; export default FileUpload; export { FileUploadTrigger, FileUploadDropzone, FileUploadItem }; export type { FileUploadTriggerProps, FileUploadDropzoneProps, FileUploadItemProps, };