import React from 'react';
import { IntlShape } from 'react-intl';
import FileUploadFactory from '../common/file-uploader/file-upload';
import LoadStorageMapFactory from './load-storage-map';
import LoadTilesetFactory from './tilesets-modals/load-tileset';
import ModalTabsFactory from './modal-tabs';
import { FileLoading, FileLoadingProgress, LoadFiles } from '@kepler.gl/types';
export interface LoadingMethod {
    id: string;
    label: string;
    elementType: React.ComponentType<any>;
    tabElementType?: React.ComponentType<{
        onClick: React.MouseEventHandler;
        intl: IntlShape;
    }>;
}
type LoadDataModalProps = {
    onFileUpload: (files: File[]) => void;
    onLoadCloudMap: (provider: any, vis: any) => void;
    onTilesetAdded: (tileset: {
        name: string;
        type: string;
        metadata: Record<string, any>;
    }, processedMetadata?: Record<string, any>) => void;
    fileLoading: FileLoading | false;
    loadingMethods?: LoadingMethod[];
    /** A list of names of supported formats suitable to present to user */
    fileFormatNames: string[];
    /** A list of typically 3 letter extensions (without '.') for file matching */
    fileExtensions: string[];
    isCloudMapLoading: boolean;
    /** Set to true if app wants to do its own file filtering */
    disableExtensionFilter?: boolean;
    onClose?: (...args: any) => any;
    loadFiles: LoadFiles;
    fileLoadingProgress: FileLoadingProgress;
};
export declare function LoadDataModalFactory(ModalTabs: ReturnType<typeof ModalTabsFactory>, FileUpload: ReturnType<typeof FileUploadFactory>, LoadStorageMap: ReturnType<typeof LoadStorageMapFactory>, LoadTileset: ReturnType<typeof LoadTilesetFactory>): React.FC<LoadDataModalProps> & {
    defaultLoadingMethods: LoadDataModalProps["loadingMethods"];
};
export declare namespace LoadDataModalFactory {
    var deps: (typeof LoadTilesetFactory | typeof ModalTabsFactory | typeof FileUploadFactory | typeof LoadStorageMapFactory)[];
}
export default LoadDataModalFactory;
