import { ColorSet } from './color-sets/index';
import { ThemeColor } from './theme-color';
import * as i0 from "@angular/core";
export declare class ColorService {
    private _colorSet;
    /** Set the default theme to the Keppel colorset */
    private _theme;
    /** Allow the color set to be provided in a forRoot function otherwise set it to the Keppel theme by default */
    constructor();
    /**
     * Get a ThemeColor object from a color name
     * @param colorName The name of the color from the color palette
     */
    getColor(colorName: ColorIdentifier): ThemeColor;
    /**
     * Get the active color set
     */
    getColorSet(): ColorSet;
    /**
     * Define the current color set and produce a Theme from it
     */
    setColorSet(colorSet: ColorSet): void;
    /**
     * Resolve a color value. This may be the name of a color from the color set
     * or it may simply be a hex or rgb(a) color value. This function will return
     * a CSS color value regardless of which one of these formats it is
     * @param value The color name, hex code or rgb(a) value to resolve
     * @returns If the color is the name of a color in the set, the `rgba` color will be returned, otherwise the original CSS value will be returned.
     */
    resolve(value: string): string;
    /**
     * Converts a color name to an appropriate ColorSet name. For example
     * a color may be written in lower-camel-case, however color sets are in
     * kebab-case. This will convert to the appropriate naming format
     * @param colorName The color name to resolve
     */
    resolveColorName(colorName?: string): string;
    /** Determine if the current colorset has a specific color */
    colorExists(name: string): boolean;
    /** Create a theme from a colorset */
    private getTheme;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColorService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ColorService>;
}
export interface Theme {
    [name: string]: ThemeColor;
}
export type ColorIdentifier = string;
