import { Hct, TonalPalette } from '@material/material-color-utilities';
import { CssColorVariable, CssColorVariables, GeneratedTheme, HexString, HexStrings, HslaString, Hue, Opacity, Percentage, Shades, ThemeColors, ThemeColorsWithoutShade, ThemeColorsWithShade, ThemeDefinition, ThemeOptions, ThemeWithGeneratedAndOptions } from './color-types';
/**
 * Returns exact color defined in the base theme. Useful for getting exact for cases like branding.
 *
 * @param baseColor - Theme Base Color
 */
export declare function generateCssVariableName<Color extends ThemeColors>(baseColor: Color): CssColorVariable<Color>;
/**
 * Returns theme color with defined luminosity.
 *
 * @param baseColor - Theme Base Color
 * @param shade - Luminosity
 */
/**
 * Returns exact color defined in the base theme. Useful for getting exact for cases like branding.
 *
 * @param baseColor - Theme Base Color
 */
export declare function generateCssVariableName<Color extends ThemeColors>(baseColor: Color): CssColorVariable<Color>;
/**
 * Returns theme color with defined luminosity.
 *
 * @param baseColor - Theme Base Color
 * @param shade - Luminosity
 */
export declare function generateCssVariableName<Color extends ThemeColorsWithShade, Shade extends Shades>(baseColor: Color, shade: Shade): CssColorVariable<Color, Shade>;
/**
 * Returns theme color with defined luminosity and opacity.
 *
 * @param baseColor - Theme Base Color
 * @param shade - Luminosity
 * @param opacity - Opacity
 */
export declare function generateCssVariableName<Color extends ThemeColorsWithShade, Shade extends Shades, OpacityValue extends Opacity>(baseColor: Color, shade: Shade, opacity: OpacityValue): CssColorVariable<Color, Shade, OpacityValue>;
/**
 * Returns theme color with shade disables with opacity.
 *
 * @param baseColor - Theme Base Color with shade disabled
 * @param opacity - Opacity
 */
export declare function generateCssVariableName<Color extends ThemeColorsWithoutShade, OpacityValue extends Opacity>(baseColor: Color, opacity: OpacityValue): CssColorVariable<Color, 'initial', OpacityValue>;
export declare const generateHslaString: ((hue: Hue, saturation: Percentage, lightness: Percentage, alpha?: Percentage) => HslaString) & import("lodash").MemoizedFunction;
export declare const getHexStringFromTheme: (colorConfig: HexString | HexStrings, inverse?: boolean) => HexString;
export declare const getTonalPaletteInstance: ((hexColor: HexString) => TonalPalette) & import("lodash").MemoizedFunction;
export declare const extractOpacity: ((colorVariable: CssColorVariables) => Percentage) & import("lodash").MemoizedFunction;
export declare const hctToHsl: ((palette: Hct) => [Hue, Percentage, Percentage]) & import("lodash").MemoizedFunction;
export declare const generateHslaStringUsingHct: ((color: HexString, luminosity: Percentage, opacity?: Percentage) => HslaString) & import("lodash").MemoizedFunction;
export declare const withGeneratedColors: ((initialTheme: ThemeDefinition, options: ThemeOptions) => ThemeDefinition<ThemeColors>) & import("lodash").MemoizedFunction;
export declare class ColorGenerator {
    createTheme: (({ theme, options }: ThemeWithGeneratedAndOptions) => GeneratedTheme) & import("lodash").MemoizedFunction;
}
