import { UploadedFile, UploadResult } from "./types";
export declare class FileUploader {
    #private;
    el: HTMLGxIdeFileUploaderElement;
    /** Allowed file types/extensions (e.g. ['.jpg', '.png', 'image/*', 'application/pdf']) */
    readonly types?: string[];
    /** Whether multiple files can be selected */
    readonly multiple: boolean;
    /** Whether file names can be edited */
    readonly canEditName: boolean;
    /** Label to display in the uploader dialog */
    readonly label?: string;
    /** Function to handle file upload */
    readonly uploadFunction: (file: File, progressCallback: (progress: number) => void) => Promise<UploadResult>;
    /** Function to cancel file upload */
    readonly cancelUploadFunction?: (fileId: string) => Promise<void>;
    /** Callback when a file is uploaded successfully */
    readonly fileUploadedCallback?: (file: UploadedFile) => Promise<void>;
    /** Callback when the dialog is canceled */
    readonly dialogCanceledCallback?: () => Promise<void>;
    /** Callback when the dialog is confirmed with files */
    readonly dialogConfirmedCallback?: (files: UploadedFile[]) => Promise<void>;
    /** Callback when upload is cancelled */
    readonly uploadCancelledCallback?: (fileId: string) => Promise<void>;
    /** Callback when file is renamed */
    readonly fileRenamedCallback?: (data: {
        fileId: string;
        newName: string;
    }) => Promise<void>;
    /** Callback when a file validation error occurs */
    readonly fileValidationErrorCallback?: (data: {
        fileName: string;
        error: string;
    }) => Promise<void>;
    /** Callback when a file deletion error occurs */
    readonly fileDeletionErrorCallback?: (data: {
        fileName: string;
        error: string;
    }) => Promise<void>;
    /** Callback when a file is deleted */
    readonly fileDeletedCallback?: (file: UploadedFile) => Promise<void>;
    /** Callback before deleting a file to get confirmation */
    readonly onBeforeDelete?: (file: UploadedFile) => Promise<boolean>;
    private fileStates;
    private isDragging;
    /** Initializes component with locale strings */
    componentWillLoad(): Promise<void>;
    /** Clears the current file selection */
    clear(): Promise<void>;
    render(): any;
}
