import { TinyColor, type HSL, type HSLA, type HSV, type HSVA, type RGB, type RGBA } from '@ctrl/tinycolor';
import type { ReactiveElement } from 'lit';
export type { HSL, HSLA, HSV, HSVA, RGB, RGBA, TinyColor };
export type ColorValue = string | number | TinyColor | HSVA | HSV | RGB | RGBA | HSL | HSLA;
export declare const extractHueAndSaturationRegExp: RegExp;
export declare const replaceHueAndSaturationRegExp: RegExp;
export declare const replaceHueRegExp: RegExp;
/**
 * The config options for a ColorController.
 */
interface IColorControllerConfig {
    applyColorToState({ h, s, v }: {
        h: number;
        s: number;
        v: number;
    }): void;
    extractColorFromState(controller: ColorController): ColorValue;
    maintains?: 'hue' | 'saturation';
}
/**
 * ColorController - This controller is used to detect clicks outside of the host element.
 *
 * @public
 */
export declare class ColorController {
    protected host: ReactiveElement;
    protected applyColorToState: ({ h, s, v }: {
        h: number;
        s: number;
        v: number;
    }) => void;
    protected extractColorFromState: (controller: ColorController) => ColorValue;
    protected maintains: 'hue' | 'saturation';
    private _saturation;
    private _hue;
    private _color;
    private _previousColor;
    private _format;
    constructor(host: ReactiveElement, config: IColorControllerConfig);
    applyColorFromState(): void;
    get hue(): number;
    set hue(value: number);
    get value(): ColorValue;
    get color(): ColorValue;
    set color(color: ColorValue);
    getColor(format: string): ColorValue;
    setColor(color: TinyColor): void;
    getHslString(): string;
    savePreviousColor(): void;
    restorePreviousColor(): void;
    protected setColorProcess(currentColor: TinyColor, nextColor: ColorValue, format: string, isString: boolean): void;
    protected setColorMaintainHue(currentColor: TinyColor, nextColor: ColorValue, format: string, isString: boolean): void;
    protected setColorMaintainSaturation(currentColor: TinyColor, nextColor: ColorValue, format: string, isString: boolean): void;
    protected getColorProcesses: Record<string, (color: TinyColor, isString: boolean) => ColorValue>;
}
//# sourceMappingURL=ColorController.d.ts.map