import { Controller } from './controller';
import { Signal } from '@tempots/dom';
import { Path } from './path';
import { ControllerValidation } from './controller-validation';
/**
 * Specialized controller for color values with validation and transformation utilities
 */
export declare class ColorController extends Controller<string> {
    constructor(path: Path, change: (value: string) => void, signal: Signal<string>, status: Signal<ControllerValidation>, parent: {
        disabled: Signal<boolean>;
    });
    /**
     * Validates that the current value is a valid color
     */
    readonly isValidColor: import("@tempots/dom").Computed<boolean>;
    /**
     * Validates that the current value is a valid hex color
     */
    readonly isValidHex: import("@tempots/dom").Computed<boolean>;
    /**
     * Gets the normalized hex color (always 6 characters with # prefix)
     */
    readonly normalizedHex: import("@tempots/dom").Computed<string>;
    /**
     * Sets the color value with automatic normalization for hex colors
     * @param color - The color value to set
     */
    readonly setColor: (color: string) => void;
    /**
     * Sets a hex color value
     * @param hex - The hex color value (with or without #)
     */
    readonly setHex: (hex: string) => void;
    /**
     * Sets an RGB color value
     * @param r - Red value (0-255)
     * @param g - Green value (0-255)
     * @param b - Blue value (0-255)
     */
    readonly setRgb: (r: number, g: number, b: number) => void;
    /**
     * Gets RGB values from the current color
     * @returns RGB values or null if not a valid hex color
     */
    readonly getRgb: () => {
        r: number;
        g: number;
        b: number;
    } | null;
    /**
     * Creates a controller that transforms between different color formats
     * @param format - The target color format ('hex', 'rgb', 'hsl')
     * @returns A new controller with format transformation
     */
    readonly withFormat: (format: "hex" | "rgb" | "hsl") => Controller<string>;
}
/**
 * Creates a ColorController from a regular Controller<string>
 * @param controller - The base string controller
 * @returns A new ColorController with color-specific functionality
 */
export declare function createColorController(controller: Controller<string>): ColorController;
/**
 * Helper function to create color input options from a ColorController
 * @param controller - The ColorController instance
 * @returns Input options compatible with ColorInput component
 */
export declare function colorInputOptionsFromController(controller: ColorController): {
    id: string;
    disabled: Signal<boolean>;
    value: import("@tempots/dom").Computed<string>;
    hasError: Signal<boolean>;
    onChange: (color: string) => void;
    onInput: (color: string) => void;
};
