import type { AccessorContext, Color, DefaultProps, Position, UpdateParameters } from "@deck.gl/core";
import type { TextLayerProps } from "@deck.gl/layers";
import { TextLayer } from "@deck.gl/layers";
export type MergedTextLayerProps<DataT = unknown> = TextLayerProps<DataT> & {
    /**
     * Merge well names that are near each other.
     * @default true
     */
    mergeLabels?: boolean;
    /**
     * The radius in measurement units to merge well names.
     * @default 100
     */
    mergeRadius?: number;
    /**
     * Format the text for the list of labels in the cluster.
     * @default (texts) => texts[0] + " (+N)"
     */
    getClusterText: (texts: string[]) => string;
};
/**
 * MergedTextLayer is a subclass of TextLayer that merges text labels
 * that are near each other.
 */
export declare class MergedTextLayer<DataT, PropsT extends MergedTextLayerProps<DataT>> extends TextLayer<DataT, PropsT> {
    static defaultProps: DefaultProps<MergedTextLayerProps<unknown>>;
    static layerName: string;
    state: {
        clusters: Map<Position, string[]>;
        labelPositions: Map<string, Position>;
        positionToText: Map<Position, string[]>;
    } & TextLayer<DataT, MergedTextLayerProps>["state"];
    shouldUpdateState(params: UpdateParameters<this>): boolean;
    updateState(params: UpdateParameters<this>): void;
    protected getSubLayerProps(sublayerProps?: {
        id?: string;
        updateTriggers?: Record<string, unknown[]>;
        [propName: string]: unknown;
    }): any;
    protected updateLabelPositions(): void;
    /**
     * `TextLayer` ignores `getText` from derived layers, so we need
     * to override the state here
     */
    protected updateInstanceState(): void;
    protected updateLabelClusters(): void;
    protected getText(object: DataT, objectInfo: AccessorContext<DataT>): string;
    protected getBorderColor(object: DataT, objectInfo: AccessorContext<DataT>): Color;
    protected getColor(object: DataT, objectInfo: AccessorContext<DataT>): Color;
    protected getBackgroundColor(object: DataT, objectInfo: AccessorContext<DataT>): Color;
}
