import { DataColorOptions } from '../../../../../types.js';
/**
 * Type representing the coloring types.
 * Static - all values have the same color independent of the value.
 * Absolute - each value has a color based on the value.
 * Relative - each value has a color based on the value and the other values.
 */
export type ColoringType = 'Static' | 'Absolute' | 'Relative';
export type StaticColoringFunction = () => string | undefined;
export type AbsoluteColoringFunction = (value: number) => string | undefined;
export type RelativeColoringFunction = (allValuesForComparison: number[]) => (value: number) => string | undefined;
export type ColoringService<Type extends ColoringType = ColoringType> = {
    type: Type;
    getColor: Type extends 'Static' ? StaticColoringFunction : Type extends 'Absolute' ? AbsoluteColoringFunction : Type extends 'Relative' ? RelativeColoringFunction : never;
};
/**
 * Retrieves the coloring service based on the provided color options.
 *
 * @param colorOptions - The color options to determine the coloring service.
 * @returns The coloring service.
 */
export declare function getColoringServiceByColorOptions(colorOptions: DataColorOptions): ColoringService;
