import "./styles.css";
type FileUploadProps = {
    name: string;
    action: string;
    disabled?: boolean;
    label?: string;
    showAsterisk?: boolean;
    changeFileButtonText?: string;
    selectFileButtonText?: string;
    dropFileText?: string;
    method?: string;
    fileName?: string;
    fileResponseName?: string;
    acceptFile?: string;
    onChange?: (url?: string) => void;
};
/**
 * FileUpload component - used for uploading files with drag and drop functionality
 *
 * @param props - FileUpload component properties
 * @param props.name - Required field name for form handling
 * @param props.action - Required endpoint URL where the file will be uploaded
 * @param props.disabled - Whether the file upload is disabled. Default: false
 * @param props.label - Optional label text to display above the file upload area
 * @param props.showAsterisk - Whether to show asterisk on label for required fields. Default: false
 * @param props.changeFileButtonText - Text for the button to change/replace an uploaded file. Default: "Alterar arquivo"
 * @param props.selectFileButtonText - Text for the button to select a file. Default: "Selecionar arquivo"
 * @param props.dropFileText - Text displayed in the drop zone area. Default: "Ou arraste e solte o arquivo aqui"
 * @param props.method - HTTP method for the upload request. Default: "POST"
 * @param props.fileName - Form data field name for the file. Default: "file"
 * @param props.fileResponseName - Property name in the response object containing the file URL. Default: "url"
 * @param props.acceptFile - File types accepted by the input (e.g., "image/*", ".pdf"). Default: "*"
 * @param props.onChange - Callback function called when file upload completes successfully, receives the file URL
 *
 * @returns FileUpload JSX element wrapped in FieldGroup with optional label and error handling
 *
 * @example
 * ```tsx
 * // Basic file upload
 * <FileUpload
 *   name="document"
 *   action="/api/upload"
 * />
 *
 * // File upload with label and custom text
 * <FileUpload
 *   name="avatar"
 *   action="/api/upload/avatar"
 *   label="Profile Picture"
 *   showAsterisk
 *   selectFileButtonText="Choose Image"
 *   changeFileButtonText="Change Image"
 *   dropFileText="Drop your image here"
 * />
 *
 * // File upload with restrictions and callback
 * <FileUpload
 *   name="pdf"
 *   action="/api/upload/document"
 *   label="Upload PDF Document"
 *   acceptFile=".pdf"
 *   fileName="document"
 *   fileResponseName="documentUrl"
 *   onChange={(url) => console.log('File uploaded:', url)}
 * />
 *
 * // Disabled file upload
 * <FileUpload
 *   name="attachment"
 *   action="/api/upload"
 *   label="Attachment"
 *   disabled
 * />
 *
 * // File upload with custom HTTP method and response handling
 * <FileUpload
 *   name="file"
 *   action="/api/files"
 *   method="PUT"
 *   fileName="uploadedFile"
 *   fileResponseName="fileUrl"
 *   label="Custom Upload"
 *   onChange={(url) => {
 *     if (url) {
 *       setFileUrl(url);
 *       console.log('Upload successful:', url);
 *     }
 *   }}
 * />
 * ```
 */
declare function FileUpload(props: FileUploadProps): import("react/jsx-runtime").JSX.Element;
export { FileUpload };
//# sourceMappingURL=index.d.ts.map