/**
 * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 * @author David Sehnal <david.sehnal@gmail.com>
 */
import { Color } from '.';
import { ScaleLegend, TableLegend } from '../legend';
import { ParamDefinition as PD } from '../param-definition';
declare type PaletteType = 'generate' | 'colors';
declare const DefaultGetPaletteProps: {
    type: PaletteType;
    colorList: "orange-red" | "purple-blue" | "blue-purple" | "oranges" | "blue-green" | "yellow-orange-brown" | "yellow-green" | "reds" | "red-purple" | "greens" | "yellow-green-blue" | "purples" | "green-blue" | "greys" | "yellow-orange-red" | "purple-red" | "blues" | "purple-blue-green" | "spectral" | "red-yellow-green" | "red-blue" | "pink-yellow-green" | "purple-green" | "red-yellow-blue" | "brown-white-green" | "red-grey" | "orange-purple" | "set-2" | "accent" | "set-1" | "set-3" | "dark-2" | "paired" | "pastel-2" | "pastel-1" | "many-distinct" | "magma" | "inferno" | "plasma" | "viridis" | "cividis" | "twilight" | "turbo" | "rainbow" | "red-white-blue";
};
declare type GetPaletteProps = typeof DefaultGetPaletteProps;
export declare function getPaletteParams(props?: Partial<GetPaletteProps>): {
    palette: PD.Mapped<PD.NamedParams<PD.Normalize<{
        maxCount: number;
        hue: [number, number];
        chroma: [number, number];
        luminance: [number, number];
        clusteringStepCount: number;
        minSampleCount: number;
    }>, "generate"> | PD.NamedParams<PD.Normalize<{
        list: {
            kind: "set" | "interpolate";
            colors: import("./color").ColorListEntry[];
        };
    }>, "colors">>;
};
declare const DefaultPaletteProps: PD.Values<{
    palette: PD.Mapped<PD.NamedParams<PD.Normalize<{
        maxCount: number;
        hue: [number, number];
        chroma: [number, number];
        luminance: [number, number];
        clusteringStepCount: number;
        minSampleCount: number;
    }>, "generate"> | PD.NamedParams<PD.Normalize<{
        list: {
            kind: "set" | "interpolate";
            colors: import("./color").ColorListEntry[];
        };
    }>, "colors">>;
}>;
declare type PaletteProps = typeof DefaultPaletteProps;
declare const DefaultLabelOptions: {
    valueLabel: (i: number) => string;
    minLabel: string;
    maxLabel: string;
};
declare type LabelOptions = typeof DefaultLabelOptions;
export interface Palette {
    color: (i: number) => Color;
    legend?: TableLegend | ScaleLegend;
}
export declare function getPalette(count: number, props: PaletteProps, labelOptions?: Partial<LabelOptions>): {
    color: (i: number) => Color;
    legend: TableLegend | ScaleLegend;
};
export {};
