import { Layer, LayerContext } from "@deck.gl/core/typed";
import { Model } from "@luma.gl/engine";
import { ExtendedLayerProps, Position3D } from "../utils/layerTools";
import { Color } from "@deck.gl/core/typed";
declare enum TEXT_ANCHOR {
    start = 0,
    middle = 1,
    end = 2
}
declare enum ALIGNMENT_BASELINE {
    top = 1,
    center = 0,
    bottom = -1
}
declare type LabelData = {
    label: string;
    pos: Position3D;
    anchor?: TEXT_ANCHOR;
    aligment?: ALIGNMENT_BASELINE;
};
declare enum ViewSide {
    Left = 0,
    Right = 1,
    Bottom = 2,
    Top = 3
}
export interface Axes2DLayerProps<D> extends ExtendedLayerProps<D> {
    marginH: number;
    marginV: number;
    labelColor?: Color;
    labelFontSize?: number;
    fontFamily?: string;
    axisColor?: Color;
    backgroundColor?: Color;
    isLeftRuler: boolean;
    isRightRuler: boolean;
    isBottomRuler: boolean;
    isTopRuler: boolean;
}
export default class Axes2DLayer extends Layer<Axes2DLayerProps<unknown>> {
    initializeState(context: LayerContext): void;
    GetTickLinesAndLabels(min: number, max: number, viewSide: ViewSide, pixel2world: number): [number[], LabelData[]];
    GetBacgroundTriangleLinesHorizontal(x_min_w: number, x_max_w: number, isTop: boolean, viewMatrix: number[], pixel2world: number): number[];
    GetBacgroundTriangleLinesVertical(y_min_w: number, y_max_w: number, isLeft: boolean, // left or right ruler.
    viewMatrix: number[], pixel2world: number): number[];
    makeLabelsData(tick_lines: number[], tick_labels: string[]): LabelData[];
    draw({ moduleParameters, uniforms, context, }: {
        moduleParameters: unknown;
        uniforms: unknown;
        context: LayerContext;
    }): void;
    _getModels(gl: WebGLRenderingContext): {
        label_models: Model[];
        line_model: Model;
        background_model: Model;
    };
}
export {};
