import type { PickingInfo, UpdateParameters, LayerContext } from "@deck.gl/core";
import { Layer } from "@deck.gl/core";
import type { UniformValue } from "@luma.gl/core";
import { Model } from "@luma.gl/engine";
import type { DeckGLLayerContext, ExtendedLayerProps, LayerPickInfo } from "../utils/layerTools";
import { type ColormapFunctionType } from "../utils/colormapTools";
import type { Color, RGBColor } from "../../utils/Color";
import { TGrid3DColoringMode, type IDiscretePropertyValueName } from "./grid3dLayer";
import type { MeshType, MeshTypeLines } from "./typeDefs";
export interface PrivateLayerProps extends ExtendedLayerProps {
    mesh: MeshType;
    meshLines: MeshTypeLines;
    colormapName: string;
    colormapRange: [number, number];
    colormapClampColor: Color | undefined | boolean;
    undefinedPropertyValue: number;
    undefinedPropertyColor: RGBColor;
    colormapFunction?: ColormapFunctionType;
    coloringMode: TGrid3DColoringMode.Property;
    gridLines: boolean;
    propertyValueRange: [number, number];
    discretePropertyValueNames?: IDiscretePropertyValueName[];
    depthTest: boolean;
    ZIncreasingDownwards: boolean;
    enableLighting: boolean;
}
export default class PrivateLayer extends Layer<PrivateLayerProps> {
    get isLoaded(): boolean;
    setShaderModuleProps(args: Partial<{
        [x: string]: Partial<Record<string, unknown> | undefined>;
    }>): void;
    initializeState(context: DeckGLLayerContext): void;
    shouldUpdateState({ props, oldProps, context, changeFlags, }: UpdateParameters<Layer<PrivateLayerProps>>): boolean;
    updateState({ context }: UpdateParameters<Layer<PrivateLayerProps>>): void;
    _getModels(context: DeckGLLayerContext): Model[];
    draw(args: {
        moduleParameters?: unknown;
        uniforms: UniformValue;
        context: LayerContext;
    }): void;
    decodePickingColor(): number;
    encodePickingColor(): RGBColor;
    getPickingInfo({ info }: {
        info: PickingInfo;
    }): LayerPickInfo;
    private getPropertyText;
    private getColoringHints;
    private getUniforms;
}
