import { type colorTablesArray } from "@emerson-eps/color-tables/";
import type { GetPickingInfoParams, Layer, LayersList, PickingInfo, UpdateParameters } from "@deck.gl/core";
import { CompositeLayer } from "@deck.gl/core";
import type { LogCurveDataType, WellFeatureCollection, WellMdAccessor, WellTrajectoryAccessor } from "../types";
import type { PathLayerProps } from "@deck.gl/layers";
import type { ColormapFunctionType } from "../../utils/colormapTools";
import type { ContinuousLegendDataType, DiscreteLegendDataType } from "../../../components/ColorLegend";
export declare enum SubLayerId {
    CURVE = "curve",
    SELECTION = "selection"
}
export type LogIdentifier = {
    logRun: string;
    curveName: string;
};
export type LogCurveLayerProps = Omit<PathLayerProps<LogCurveDataType>, "getPath"> & {
    trajectoryData: WellFeatureCollection;
    logWidth: number | "value";
    activeLog: LogIdentifier;
    domainSelection: {
        well: string;
        selection: number[];
    };
    colorScale: {
        name: string;
        isLogarithmic: boolean;
        colorTables: colorTablesArray;
        mappingFunction: ColormapFunctionType;
    };
    getTrajectoryPath: WellTrajectoryAccessor;
    getWellMds: WellMdAccessor;
    onLogDataComputed: (data: LogCurveDataType[]) => void;
};
/** Aggregation layer for displaying Log Curves a long a well path */
export declare class LogCurveLayer extends CompositeLayer<LogCurveLayerProps> {
    static layerName: string;
    state: {
        subLayerData: LogCurveDataType[] | null;
        legend?: string;
        domainSelection: {
            well: string;
            selection: number[];
        };
    };
    constructor(...args: ConstructorParameters<typeof CompositeLayer<LogCurveLayerProps>>);
    updateState({ props, oldProps, changeFlags, }: UpdateParameters<Layer<LogCurveLayerProps>>): void;
    setLegend(value: LogCurveDataType[]): void;
    getLegendData(value: LogCurveDataType[]): ContinuousLegendDataType | DiscreteLegendDataType | null;
    getCurveLayer(): Layer<{}> | undefined;
    getSelectionLayer(): Layer<{}> | undefined;
    getPickingInfo({ info }: GetPickingInfoParams): PickingInfo;
    private _getFromSourceAccessor;
    private _logCurveIsVisible;
    renderLayers(): Layer | null | LayersList;
}
export declare function sanitizeSelectionRange(mdArray: number[], range: number[] | undefined): number[];
