import { IEventEmitter } from '@breadstone/mosaik-elements';
import type { IColorChangedEventDetail, IColorFormatChangedEventDetail } from '../../../events';
import type { ColorEditorFormat } from '../../../Types/ColorEditorFormat';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { IColorEditorInputsElementProps } from './IColorEditorInputsElementProps';
declare const ColorEditorInputsElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Focusable").IFocusableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Sizeable").ISizeableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Color Editor Inputs - Input fields for editing color values in various formats.
 *
 * @name ColorEditorInputs
 * @element mosaik-color-editor-inputs
 *
 * @description
 * The Color Editor Inputs component provides text input fields for editing color values
 * in different formats (HEX, RGB, HSL, HSV). Users can toggle between formats using
 * a format switcher button. The component automatically validates and converts values
 * between formats.
 *
 * @category Media
 *
 * @fires colorChanged {ColorChangedEvent} - Fired when the color value changes via user input
 * @fires colorFormatChanged {ColorFormatChangedEvent} - Fired when the color format is changed
 *
 * @csspart input-group - Container for each input field and its label
 * @csspart input - The text input fields
 * @csspart label - The labels below each input field
 * @csspart format-switcher - The button to toggle between formats
 *
 * @dependency {TextBoxElement} - Used for text input fields
 * @dependency {NumberBoxElement} - Used for numeric input fields
 *
 * @public
 */
export declare class ColorEditorInputsElement extends ColorEditorInputsElement_base implements IColorEditorInputsElementProps {
    private static readonly _formatCycle;
    private readonly _colorChanged;
    private readonly _colorFormatChanged;
    private _color;
    private _format;
    private _showAlpha;
    /**
     * Constructs a new instance of the ColorEditorInputsElement class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the color value.
     *
     * @public
     * @attr
     */
    get color(): string;
    set color(value: string);
    /**
     * Gets or sets the color format to display.
     *
     * @public
     * @attr
     */
    get format(): ColorEditorFormat;
    set format(value: ColorEditorFormat);
    /**
     * Gets or sets whether to show the alpha input.
     *
     * @public
     */
    get showAlpha(): boolean;
    set showAlpha(value: boolean);
    /**
     * Called when the color value changes via user input.
     * Provides reference to `{@link IColorChangedEventDetail}` as event detail.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get colorChanged(): IEventEmitter<IColorChangedEventDetail>;
    /**
     * Called when the color format is changed.
     * Provides reference to `{@link IColorFormatChangedEventDetail}` as event detail.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get colorFormatChanged(): IEventEmitter<IColorFormatChangedEventDetail>;
    /**
     * Navigates to the previous color format in the cycle.
     *
     * @public
     */
    previousFormat(): void;
    /**
     * Navigates to the next color format in the cycle.
     *
     * @public
     */
    nextFormat(): void;
    /**
     * Handles HEX input changes.
     *
     * @private
     */
    onHexChange(event: Event): void;
    /**
     * Handles alpha input changes.
     *
     * @private
     */
    onAlphaChange(event: Event): void;
    /**
     * Handles RGB input changes.
     *
     * @private
     */
    onRgbChange(event: Event, channel: 'r' | 'g' | 'b'): void;
    /**
     * Handles HSL input changes.
     *
     * @private
     */
    onHslChange(event: Event, channel: 'h' | 's' | 'l'): void;
    /**
     * Handles HSV input changes.
     *
     * @private
     */
    onHsvChange(event: Event, channel: 'h' | 's' | 'v'): void;
    /**
     * Handles LAB input changes.
     *
     * @private
     */
    onLabChange(event: Event, channel: 'l' | 'a' | 'b'): void;
    /**
     * Handles LCH input changes.
     *
     * @private
     */
    onLchChange(event: Event, channel: 'l' | 'c' | 'h'): void;
    /**
     * Handles OKLAB input changes.
     *
     * @private
     */
    onOklabChange(event: Event, channel: 'l' | 'a' | 'b'): void;
    /**
     * Handles OKLCH input changes.
     *
     * @private
     */
    onOklchChange(event: Event, channel: 'l' | 'c' | 'h'): void;
}
/**
 * @public
 */
export declare namespace ColorEditorInputsElement {
    type Props = IColorEditorInputsElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-color-editor-inputs': ColorEditorInputsElement;
    }
}
export {};
//# sourceMappingURL=ColorEditorInputsElement.d.ts.map