import React, { Dispatch } from 'react';
import { FeatureFlags } from './context';
import { AttributionWithStyle, DatasetAttribution, OnErrorCallBack, OnSuccessCallBack, Viewport, MapState } from '@kepler.gl/types';
import { MapStateActions, MapStyleActions, ProviderActions, UIStateActions, VisStateActions } from '@kepler.gl/actions';
type KeplerGlActions = {
    visStateActions: typeof VisStateActions;
    mapStateActions: typeof MapStateActions;
    mapStyleActions: typeof MapStyleActions;
    uiStateActions: typeof UIStateActions;
    providerActions: typeof ProviderActions;
};
import SidePanelFactory from './side-panel';
import MapContainerFactory from './map-container';
import MapsLayoutFactory from './maps-layout';
import BottomWidgetFactory from './bottom-widget';
import ModalContainerFactory from './modal-container';
import PlotContainerFactory from './plot-container';
import NotificationPanelFactory from './notification-panel';
import GeoCoderPanelFactory from './geocoder-panel';
import EffectManagerFactory from './effects/effect-manager';
import DndContextFactory from './dnd-context';
import { KeplerGlState } from '@kepler.gl/reducers';
import { Provider } from '@kepler.gl/cloud-providers';
export declare const isViewportDisjointed: (props: any) => any;
type MapStateProps = {
    mapState: MapState;
};
export declare const mapStateSelector: ((state: MapStateProps, index?: number | undefined) => MapState) & import("reselect").OutputSelectorFields<(args_0: MapState, args_1: number | undefined) => MapState, {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export declare const mapFieldsSelector: (props: KeplerGLProps, index?: number) => {
    getMapboxRef: (() => React.RefObject<any>) | undefined;
    mapboxApiAccessToken: string;
    mapboxApiUrl: string;
    mapState: MapState;
    datasetAttributions: DatasetAttribution[];
    mapStyle: import("@kepler.gl/reducers").MapStyle;
    onDeckInitialized: (() => void) | undefined;
    onViewStateChange: ((viewState: Viewport) => void) | undefined;
    onMouseMove: ((event: React.MouseEvent & {
        lngLat?: [number, number];
    }) => void) | undefined;
    deckGlProps: object | undefined;
    uiStateActions: typeof UIStateActions;
    visStateActions: typeof VisStateActions;
    mapStateActions: typeof MapStateActions;
    visState: import("@kepler.gl/schemas").VisState;
    activeSidePanel: string | null;
    mapControls: import("@kepler.gl/types").MapControls;
    readOnly: boolean;
    locale: string;
    isLoadingIndicatorVisible: boolean;
    sidePanelWidth: number;
    topMapContainerProps: object | undefined;
    bottomMapContainerProps: object | undefined;
    transformRequest: ((url: string) => {
        url: string;
    }) | undefined;
};
export declare function getVisibleDatasets(datasets: any): {};
export declare const sidePanelSelector: (props: KeplerGLProps, availableProviders: any, filteredDatasets: any) => {
    appName: string;
    version: string;
    appWebsite: any;
    mapStyle: import("@kepler.gl/reducers").MapStyle;
    onSaveMap: (() => void) | undefined;
    uiState: import("@kepler.gl/types").UiState;
    mapStyleActions: typeof MapStyleActions;
    visStateActions: typeof VisStateActions;
    uiStateActions: typeof UIStateActions;
    mapStateActions: typeof MapStateActions;
    datasets: any;
    filters: import("@kepler.gl/types").Filter[];
    layers: import("@kepler.gl/layers").Layer[];
    layerOrder: string[];
    layerClasses: {
        point: typeof import("@kepler.gl/layers/dist/point-layer/point-layer").default;
        arc: typeof import("@kepler.gl/layers/dist/arc-layer/arc-layer").default;
        line: typeof import("@kepler.gl/layers/dist/line-layer/line-layer").default;
        grid: typeof import("@kepler.gl/layers/dist/grid-layer/grid-layer").default;
        hexagon: typeof import("@kepler.gl/layers/dist/hexagon-layer/hexagon-layer").default;
        geojson: typeof import("@kepler.gl/layers/dist/geojson-layer/geojson-layer").default;
        cluster: typeof import("@kepler.gl/layers/dist/cluster-layer/cluster-layer").default;
        icon: typeof import("@kepler.gl/layers/dist/icon-layer/icon-layer").default;
        heatmap: typeof import("@kepler.gl/layers/dist/heatmap-layer/heatmap-layer").default;
        hexagonId: typeof import("@kepler.gl/layers/dist/h3-hexagon-layer/h3-hexagon-layer").default;
        "3D": typeof import("@kepler.gl/layers").ScenegraphLayer;
        trip: typeof import("@kepler.gl/layers/dist/trip-layer/trip-layer").default;
        s2: typeof import("@kepler.gl/layers/dist/s2-geometry-layer/s2-geometry-layer").default;
        vectorTile: typeof import("@kepler.gl/layers").VectorTileLayer;
        rasterTile: typeof import("@kepler.gl/layers").RasterTileLayer;
        wms: typeof import("@kepler.gl/layers/dist/wms-layer/wms-layer").default;
        tile3d: typeof import("@kepler.gl/layers").Tile3DLayer;
    };
    interactionConfig: import("@kepler.gl/types").InteractionConfig;
    mapInfo: import("@kepler.gl/types").MapInfo;
    layerBlending: string;
    overlayBlending: string | undefined;
    width: number;
    availableProviders: any;
    mapSaved: string | null;
};
export declare const plotContainerSelector: (props: KeplerGLProps) => {
    width: number | undefined;
    height: number | undefined;
    ratio: EXPORT_IMG_RATIOS;
    resolution: import("@kepler.gl/constants").ExportResolutionOption;
    legend: boolean;
    center: boolean;
    imageSize: {
        zoomOffset: number;
        scale: number;
        imageW: number;
        imageH: number;
    };
    escapeXhtmlForWebpack: boolean | undefined;
    mapFields: {
        getMapboxRef: (() => React.RefObject<any>) | undefined;
        mapboxApiAccessToken: string;
        mapboxApiUrl: string;
        mapState: MapState;
        datasetAttributions: DatasetAttribution[];
        mapStyle: import("@kepler.gl/reducers").MapStyle;
        onDeckInitialized: (() => void) | undefined;
        onViewStateChange: ((viewState: Viewport) => void) | undefined;
        onMouseMove: ((event: React.MouseEvent & {
            lngLat?: [number, number];
        }) => void) | undefined;
        deckGlProps: object | undefined;
        uiStateActions: typeof UIStateActions;
        visStateActions: typeof VisStateActions;
        mapStateActions: typeof MapStateActions;
        visState: import("@kepler.gl/schemas").VisState;
        activeSidePanel: string | null;
        mapControls: import("@kepler.gl/types").MapControls;
        readOnly: boolean;
        locale: string;
        isLoadingIndicatorVisible: boolean;
        sidePanelWidth: number;
        topMapContainerProps: object | undefined;
        bottomMapContainerProps: object | undefined;
        transformRequest: ((url: string) => {
            url: string;
        }) | undefined;
    };
    addNotification: (notification: UIStateActions.AddNotificationUpdaterAction["payload"]) => import("@kepler.gl/types").Merge<UIStateActions.AddNotificationUpdaterAction, {
        type: "@@kepler.gl/ADD_NOTIFICATION";
    }>;
    setExportImageSetting: (newSetting: UIStateActions.SetExportImageSettingUpdaterAction["payload"]) => import("@kepler.gl/types").Merge<UIStateActions.SetExportImageSettingUpdaterAction, {
        type: "@@kepler.gl/SET_EXPORT_IMAGE_SETTING";
    }>;
    setExportImageDataUri: (dataUri: UIStateActions.SetExportImageDataUriUpdaterAction["payload"]) => import("@kepler.gl/types").Merge<UIStateActions.SetExportImageDataUriUpdaterAction, {
        type: "@@kepler.gl/SET_EXPORT_IMAGE_DATA_URI";
    }>;
    setExportImageError: (error: UIStateActions.SetExportImageErrorUpdaterAction["payload"]) => import("@kepler.gl/types").Merge<UIStateActions.SetExportImageErrorUpdaterAction, {
        type: "@@kepler.gl/SET_EXPORT_IMAGE_ERROR";
    }>;
    splitMaps: import("@kepler.gl/types").SplitMap[];
};
export declare const isSplitSelector: (props: KeplerGLProps) => boolean;
export declare const bottomWidgetSelector: (props: KeplerGLProps, theme: any) => {
    filters: import("@kepler.gl/types").Filter[];
    datasets: import("@kepler.gl/table").Datasets;
    uiState: import("@kepler.gl/types").UiState;
    layers: import("@kepler.gl/layers").Layer[];
    animationConfig: import("@kepler.gl/types").AnimationConfig;
    visStateActions: typeof VisStateActions;
    toggleModal: (id: UIStateActions.ToggleModalUpdaterAction["payload"]) => import("@kepler.gl/types").Merge<UIStateActions.ToggleModalUpdaterAction, {
        type: "@@kepler.gl/TOGGLE_MODAL";
    }>;
    sidePanelWidth: any;
};
export declare const modalContainerSelector: (props: KeplerGLProps, rootNode: any) => {
    appName: string;
    mapStyle: import("@kepler.gl/reducers").MapStyle;
    visState: import("@kepler.gl/schemas").VisState;
    mapState: MapState;
    uiState: import("@kepler.gl/types").UiState;
    providerState: import("@kepler.gl/reducers").ProviderState;
    mapboxApiAccessToken: string;
    mapboxApiUrl: string | undefined;
    visStateActions: typeof VisStateActions;
    uiStateActions: typeof UIStateActions;
    mapStyleActions: typeof MapStyleActions;
    providerActions: typeof ProviderActions;
    rootNode: any;
    cloudProviders: Provider[];
    onExportToCloudSuccess: OnSuccessCallBack | undefined;
    onLoadCloudMapSuccess: OnSuccessCallBack | undefined;
    onLoadCloudMapError: OnErrorCallBack | undefined;
    onExportToCloudError: OnErrorCallBack | undefined;
};
export declare const geoCoderPanelSelector: (props: KeplerGLProps, dimensions: {
    width: number;
    height: number;
}) => {
    isGeocoderEnabled: boolean;
    mapboxApiAccessToken: string;
    mapState: MapState;
    uiState: import("@kepler.gl/types").UiState;
    layerOrder: string[];
    updateVisData: typeof VisStateActions.updateVisData;
    removeDataset: typeof VisStateActions.removeDataset;
    updateMap: (viewport: Viewport, mapIndex?: number) => import("@kepler.gl/types").Merge<MapStateActions.UpdateMapUpdaterAction, {
        type: "@@kepler.gl/UPDATE_MAP";
    }>;
    appWidth: number;
};
/**
 * Returns array of unique dataset attributions, each with title and url properties.
 */
export declare const datasetAttributionSelector: ((state: any) => DatasetAttribution[]) & import("reselect").OutputSelectorFields<(args_0: any) => DatasetAttribution[], {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
/**
 * Deduplicated dataset and layer text attributions and logos.
 * Returns text attributions and logos to display.
 */
export declare const attributionSelector: ((state: any) => {
    sources: DatasetAttribution[];
    logos: AttributionWithStyle[];
}) & import("reselect").OutputSelectorFields<(args_0: DatasetAttribution[]) => {
    sources: DatasetAttribution[];
    logos: AttributionWithStyle[];
}, {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export declare const notificationPanelSelector: (props: KeplerGLProps) => {
    removeNotification: (id: UIStateActions.RemoveNotificationUpdaterAction["payload"]) => import("@kepler.gl/types").Merge<UIStateActions.RemoveNotificationUpdaterAction, {
        type: "@@kepler.gl/REMOVE_NOTIFICATION";
    }>;
    notifications: import("@kepler.gl/types").Notifications[];
};
export declare const DEFAULT_KEPLER_GL_PROPS: {
    mapStyles: never[];
    mapStylesReplaceDefault: boolean;
    mapboxApiUrl: string;
    width: number;
    height: number;
    appName: string;
    version: string;
    sidePanelWidth: number;
    theme: {};
    cloudProviders: never[];
    readOnly: boolean;
    featureFlags: {};
};
type KeplerGLBasicProps = {
    mapboxApiAccessToken: string;
    mapboxApiUrl?: string;
    id: string;
    width?: number;
    height?: number;
    appWebsite?: any;
    onSaveMap?: () => void;
    onViewStateChange?: (viewState: Viewport) => void;
    onDeckInitialized?: () => void;
    onKeplerGlInitialized?: () => void;
    getMapboxRef?: () => React.RefObject<any>;
    mapStyles?: {
        id: string;
        style?: object;
    }[];
    mapStylesReplaceDefault?: boolean;
    appName?: string;
    version?: string;
    sidePanelWidth?: number;
    theme?: object;
    cloudProviders?: Provider[];
    deckGlProps?: object;
    onLoadCloudMapSuccess?: OnSuccessCallBack;
    onLoadCloudMapError?: OnErrorCallBack;
    onMouseMove?: (event: React.MouseEvent & {
        lngLat?: [number, number];
    }) => void;
    onExportToCloudSuccess?: OnSuccessCallBack;
    onExportToCloudError?: OnErrorCallBack;
    readOnly?: boolean;
    featureFlags?: FeatureFlags;
    localeMessages?: {
        [key: string]: {
            [key: string]: string;
        };
    };
    dispatch: Dispatch<any>;
    topMapContainerProps?: object;
    bottomMapContainerProps?: object;
    transformRequest?: (url: string) => {
        url: string;
    };
};
type KeplerGLProps = KeplerGlState & KeplerGlActions & KeplerGLBasicProps;
declare function KeplerGlFactory(BottomWidget: ReturnType<typeof BottomWidgetFactory>, GeoCoderPanel: ReturnType<typeof GeoCoderPanelFactory>, MapContainer: ReturnType<typeof MapContainerFactory>, MapsLayout: ReturnType<typeof MapsLayoutFactory>, ModalContainer: ReturnType<typeof ModalContainerFactory>, SidePanel: ReturnType<typeof SidePanelFactory>, PlotContainer: ReturnType<typeof PlotContainerFactory>, NotificationPanel: ReturnType<typeof NotificationPanelFactory>, DndContext: ReturnType<typeof DndContextFactory>): React.ComponentType<KeplerGLBasicProps & {
    selector: (...args: any[]) => KeplerGlState;
}>;
declare namespace KeplerGlFactory {
    var deps: (typeof DndContextFactory | typeof BottomWidgetFactory | typeof GeoCoderPanelFactory | typeof MapContainerFactory | typeof MapsLayoutFactory | typeof ModalContainerFactory | typeof SidePanelFactory | typeof PlotContainerFactory | typeof NotificationPanelFactory | typeof EffectManagerFactory)[];
}
export declare function mapStateToProps(state: KeplerGlState, props: KeplerGLProps): {
    visState: import("@kepler.gl/schemas").VisState;
    mapStyle: import("@kepler.gl/reducers").MapStyle;
    mapState: MapState;
    uiState: import("@kepler.gl/types").UiState;
    providerState: import("@kepler.gl/reducers").ProviderState;
    visStateActions: typeof VisStateActions;
    mapStateActions: typeof MapStateActions;
    mapStyleActions: typeof MapStyleActions;
    uiStateActions: typeof UIStateActions;
    providerActions: typeof ProviderActions;
    mapboxApiAccessToken: string;
    mapboxApiUrl?: string;
    id: string;
    width?: number;
    height?: number;
    appWebsite?: any;
    onSaveMap?: () => void;
    onViewStateChange?: (viewState: Viewport) => void;
    onDeckInitialized?: () => void;
    onKeplerGlInitialized?: () => void;
    getMapboxRef?: () => React.RefObject<any>;
    mapStyles?: {
        id: string;
        style?: object;
    }[];
    mapStylesReplaceDefault?: boolean;
    appName?: string;
    version?: string;
    sidePanelWidth?: number;
    theme?: object;
    cloudProviders?: Provider[];
    deckGlProps?: object;
    onLoadCloudMapSuccess?: OnSuccessCallBack;
    onLoadCloudMapError?: OnErrorCallBack;
    onMouseMove?: (event: React.MouseEvent & {
        lngLat?: [number, number];
    }) => void;
    onExportToCloudSuccess?: OnSuccessCallBack;
    onExportToCloudError?: OnErrorCallBack;
    readOnly?: boolean;
    featureFlags?: FeatureFlags;
    localeMessages?: {
        [key: string]: {
            [key: string]: string;
        };
    };
    dispatch: Dispatch<any>;
    topMapContainerProps?: object;
    bottomMapContainerProps?: object;
    transformRequest?: (url: string) => {
        url: string;
    };
};
/** @type {() => import('reselect').OutputParametricSelector<any, any, any, any>} */
export declare function makeGetActionCreators(): ((state: any, props: any) => {
    visStateActions: any;
    mapStateActions: any;
    mapStyleActions: any;
    uiStateActions: any;
    providerActions: any;
    dispatch: any;
}) & import("reselect").OutputSelectorFields<(args_0: any, args_1: any) => {
    visStateActions: any;
    mapStateActions: any;
    mapStyleActions: any;
    uiStateActions: any;
    providerActions: any;
    dispatch: any;
}, {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export default KeplerGlFactory;
