/// <reference types="deck.gl" />
import { CompositeLayer } from "@deck.gl/core";
import { ExtendedLayerProps } from "../utils/layerTools";
import { GeoJsonLayer, PathLayer, TextLayer } from "@deck.gl/layers";
import { RGBAColor } from "@deck.gl/core/utils/color";
import { Feature, FeatureCollection, GeoJsonProperties, Geometry } from "geojson";
import { LayerPickInfo } from "../utils/layerTools";
import { UpdateStateInfo } from "@deck.gl/core/lib/layer";
declare type StyleAccessorFunction = (object: Feature, objectInfo?: Record<string, unknown>) => LineStyle;
declare type NumberPair = [number, number];
declare type DashAccessor = boolean | NumberPair | StyleAccessorFunction | undefined;
declare type ColorAccessor = RGBAColor | StyleAccessorFunction | undefined;
declare type WidthAccessor = number | StyleAccessor | undefined;
declare type LineStyle = NumberPair | RGBAColor | number;
declare type StyleAccessor = {
    color?: ColorAccessor;
    dash?: DashAccessor;
    width?: WidthAccessor;
};
export interface WellsLayerProps<D> extends ExtendedLayerProps<D> {
    pointRadiusScale: number;
    lineWidthScale: number;
    outline: boolean;
    selectedWell: string;
    logData: string | LogCurveDataType;
    logName: string;
    logColor: string;
    logrunName: string;
    logRadius: number;
    logCurves: boolean;
    refine: boolean;
    lineStyle: StyleAccessor;
    wellNameVisible: boolean;
    wellNameAtTop: boolean;
    wellNameSize: number;
    wellNameColor: RGBAColor;
}
export interface LogCurveDataType {
    header: {
        name: string;
        well: string;
    };
    curves: {
        name: string;
        description: string;
    }[];
    data: number[][];
    metadata_discrete: Record<string, {
        attributes: unknown;
        objects: Record<string, [RGBAColor, number]>;
    }>;
}
export interface WellsPickInfo extends LayerPickInfo {
    logName: string;
}
export default class WellsLayer extends CompositeLayer<FeatureCollection, WellsLayerProps<FeatureCollection>> {
    onClick(info: WellsPickInfo): boolean;
    shouldUpdateState({ changeFlags, }: UpdateStateInfo<WellsLayerProps<FeatureCollection<Geometry, GeoJsonProperties>>>): boolean | string | null;
    renderLayers(): (GeoJsonLayer<Feature> | PathLayer<LogCurveDataType> | TextLayer<Feature>)[];
    getPickingInfo({ info }: {
        info: any;
    }): any;
}
export declare function getLogValues(d: LogCurveDataType, logrun_name: string, log_name: string): number[];
export declare function getLogInfo(d: LogCurveDataType, logrun_name: string, log_name: string): {
    name: string;
    description: string;
} | undefined;
export {};
