import { PropertyMeta } from "../../core/property-meta";
import { VoidFunc } from "../../../../fd-toolbox/functions/internal-getter-setter-functions";
/**
 * Props for the {@link FileUpload} component.
 */
export interface FileUploadProps {
    /** Metadata for the property, used for handling file uploads in a specific context */
    propertyMeta?: PropertyMeta;
    /** If `true`, allows uploading multiple files. Defaults to `false` */
    allowMultiple?: boolean;
    /** The initial value of the file input, typically a URL to an existing file */
    value?: string;
    /** If `true`, the field is marked as required. Defaults to `false` */
    required?: boolean;
    /** The label to display for the file upload input */
    label?: string;
    /** If `true`, indicates that the component is used in a "create new" context */
    isNew?: boolean;
    /** The ID of a related resource, used for associating the uploaded file */
    relatedResourceId?: string;
    /** Event handler called when file is uploaded */
    onChange?: VoidFunc<File[], string[]>;
    /** Event handler called when file is deleted */
    onFileDelete?: VoidFunc<string[], string>;
}
/**
 * A component for uploading one or more files with a preview.
 *
 * This component supports drag-and-drop, file selection from the local system,
 * and displays previews for uploaded images and videos. It also includes
 * functionality to delete uploaded files and view them in full-screen.
 *
 * @param props - {@link FileUploadProps}
 *
 * @example
 * ```tsx
    <FileUpload label="Profile Picture" required={true} allowMultiple={false} />;
 * ```
 */
export declare function FileUpload({ allowMultiple, value, required, label, isNew, relatedResourceId, propertyMeta, onChange, onFileDelete, }: FileUploadProps): import("react").JSX.Element;
