import { DataTexture, type ColorRepresentation } from "three";
import type { GeometryIndexApi } from "../GeometryUtils/useGeometryIndex";
export declare const MAX_ELEMENT_COLOR_PALETTE_SIZE = 256;
export declare const SELECTION_COLOR_INDEX = 1;
export type ViewerModelColorConfig = Record<string, number[]>;
export type ViewerColorConfigByModel = Record<number, ViewerModelColorConfig>;
export type ViewerElementColorsApi = {
    applyStoredColors: () => void;
    clearAllColors: () => void;
    clearColor: (modelID: number, ids: number[]) => void;
    clearModelColors: (modelID: number) => void;
    rebuildByColors: (colorsByModel: ViewerColorConfigByModel, defaultColor?: ColorRepresentation) => void;
    rebuildModelByColors: (modelID: number, colorsByIds: ViewerModelColorConfig, defaultColor?: ColorRepresentation) => void;
    setColor: (modelID: number, ids: number[], color: ColorRepresentation) => void;
};
export type ViewerElementColors = {
    colorPaletteTexture: DataTexture;
    colorUtils: ViewerElementColorsApi;
};
export declare function useElementColors(geometryIndex: GeometryIndexApi): ViewerElementColors;
