import type { PickingInfo, UpdateParameters } from "@deck.gl/core";
import { Layer } from "@deck.gl/core";
import type { Device } from "@luma.gl/core";
import type { GeometryProps } from "@luma.gl/engine";
import { Model } from "@luma.gl/engine";
import type { DeckGLLayerContext, ExtendedLayerProps, LayerPickInfo } from "../utils/layerTools";
import type { RGBColor } from "../../utils";
export type GeometryTriangles = {
    topology: GeometryProps["topology"];
    attributes: {
        positions: {
            value: Float32Array;
            size: number;
        };
        TEXCOORD_0?: {
            value: Float32Array;
            size: number;
        };
        normals: {
            value: Float32Array;
            size: number;
        };
        vertex_indexs: {
            value: Int32Array;
            size: number;
        };
    };
    vertexCount: number;
    indices: {
        value: Uint32Array;
        size: number;
    };
};
export type GeometryLines = {
    topology: GeometryProps["topology"];
    attributes: {
        positions: {
            value: Float32Array;
            size: number;
        };
    };
    vertexCount: number;
};
export interface PrivateTriangleLayerProps extends ExtendedLayerProps {
    geometryTriangles: GeometryTriangles;
    geometryLines: GeometryLines;
    contours: [number, number];
    gridLines: boolean;
    color: RGBColor;
    smoothShading: boolean;
    depthTest: boolean;
    ZIncreasingDownwards: boolean;
    enableLighting: boolean;
}
export default class PrivateTriangleLayer extends Layer<PrivateTriangleLayerProps> {
    get isLoaded(): boolean;
    setShaderModuleProps(args: Partial<{
        [x: string]: Partial<Record<string, unknown> | undefined>;
    }>): void;
    initializeState(context: DeckGLLayerContext): void;
    shouldUpdateState({ props, oldProps, context, changeFlags, }: UpdateParameters<this>): boolean;
    updateState({ context }: UpdateParameters<this>): void;
    _getModels(device: Device): [Model, Model];
    draw(args: any): void;
    decodePickingColor(): number;
    getPickingInfo({ info }: {
        info: PickingInfo;
    }): LayerPickInfo;
}
