import React from "react";
import type { Layer } from "@deck.gl/core";
import type { colorTablesArray } from "@emerson-eps/color-tables/";
import type { BoundsAccessor, MapMouseEvent, MapProps, TooltipCallback, ViewStateType, ViewsType } from "./components/Map";
import { TGrid3DColoringMode } from "./layers/grid3d/grid3dLayer";
export type { BoundsAccessor, colorTablesArray, MapMouseEvent, TooltipCallback, ViewStateType, ViewsType, };
export { TGrid3DColoringMode };
export type LightsType = {
    headLight?: {
        intensity: number;
        color?: [number, number, number];
    };
    ambientLight?: {
        intensity: number;
        color?: [number, number, number];
    };
    pointLights?: Array<{
        intensity: number;
        position: [number, number, number];
        color?: [number, number, number];
    }>;
    directionalLights?: Array<{
        intensity: number;
        direction: [number, number, number];
        color?: [number, number, number];
    }>;
};
export type TLayerDefinition = Record<string, unknown> | Layer | false | null | undefined;
/**
 * Properties of the SubsurfaceViewer component.
 */
export interface SubsurfaceViewerProps extends Omit<MapProps, "layers" | "setEditedData" | "toolbar"> {
    /**
     * Array of externally created layers or layer definition records or JSON strings.
     * Add '@@typedArraySupport' : true in a layer definition in order to
     * use typed arrays as inputs.
     */
    layers?: TLayerDefinition[];
    /**
     * @deprecated Used by layers to propagate state to component, eg. selected
     * wells from the Wells layer. Use client code to handle layer state
     * instead.
     */
    setProps?: (data: Record<string, unknown>) => void;
}
declare const SubsurfaceViewer: React.FC<SubsurfaceViewerProps>;
export default SubsurfaceViewer;
