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, };