import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { NgModel } from '@angular/forms';
import { BehaviorSubject } from 'rxjs';
import { TabbableListDirective } from '../../directives/accessibility/index';
import { ColorPickerColor } from './color-picker-color';
import { ColorPickerButtonSize, ColorPickerButtonStyle, ColorPickerInputColors, ColorPickerInputMode } from './color-picker.type';
import * as i0 from "@angular/core";
export declare class ColorPickerComponent implements OnInit, OnDestroy {
    id: string;
    /**
     * The collection of colors to display in the color swatch.
     *
     * Colors can be specified either as a string, which is the hex or RGBA value of the color; or as a `ColorPickerColor` object,
     * which allows a name to be associated with the color. See below for details of the `ColorPickerColor` class.
     * This property is either a one-dimensional or two-dimensional array. If a two-dimensional array is provided,
     * the colors will be split into rows, providing more control over the appearance of the swatch.
     */
    set inputColors(colors: ColorPickerInputColors[] | ColorPickerInputColors[][]);
    /**
     * The currently selected color. If this is one of the `colors` in the colors collection, it will be visually
     * highlighted in the swatch. It will also be shown in the input panel, if enabled (see showInput).
     * Note that this will always be a `ColorPickerColor` object, even if plain strings are provided to the colors property.
     * See below for details of the `ColorPickerColor` class.
     */
    set selected(selected: ColorPickerColor);
    /**
     * The number of columns to display in the color swatch. Set this to -1 if the width should be specified by a stylesheet
     * instead, e.g. to provide a responsive layout.
     */
    set columns(columns: number);
    /** The style of the color swatch buttons. */
    buttonStyle: ColorPickerButtonStyle;
    /** The size of the color swatch buttons. Three size variants are currently supported. */
    set buttonSize(buttonSize: ColorPickerButtonSize);
    /** Whether to show tooltips above the color swatch buttons. These contain the color name if provided; otherwise the color hex/RGBA value. */
    showTooltips: boolean;
    /** Whether to show the hex/RGBA input panel. */
    showInput: boolean;
    /** The default input mode to display in the input panel. The user can switch modes using the toggle button. */
    inputMode: ColorPickerInputMode;
    /** Defines a function that returns an aria-label for ColorPickerColor. */
    colorAriaLabel: (color: ColorPickerColor) => string;
    /** Defines a function that returns an aria-label for the button that switches input modes. */
    switchModeAriaLabel: (mode: ColorPickerInputMode) => string;
    /** Define a function that returns an aria-label for the input control. */
    inputAriaLabel: (mode: ColorPickerInputMode) => string;
    /** Emitted when the user changes the selected color, either by clicking a color swatch button, or entering a valid color value into the input panel text field. */
    selectedChange: EventEmitter<ColorPickerColor>;
    /** Emitted when the user changes the colour input mode */
    inputModeChange: EventEmitter<ColorPickerInputMode>;
    /** Emitted when the user presses enter in the input panel text field. This can be used to commit a color change and/or close a popup. */
    inputSubmit: EventEmitter<void>;
    cssWidth: string;
    colors: ColorPickerColor[][];
    selected$: BehaviorSubject<ColorPickerColor>;
    columns$: BehaviorSubject<number>;
    buttonSize$: BehaviorSubject<ColorPickerButtonSize>;
    inputPatterns: {
        hex: RegExp;
        rgba: RegExp;
    };
    /** Access the ngModel instance of the input field */
    inputFormControl: NgModel;
    tabbableList: TabbableListDirective;
    private readonly _onDestroy;
    ngOnInit(): void;
    ngOnDestroy(): void;
    onFocus(): void;
    updateColorValue(input: string, mode: ColorPickerInputMode): void;
    toggleColorEntryType(): void;
    private getColorAriaLabel;
    private getSwitchModeAriaLabel;
    private getInputAriaLabel;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColorPickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ColorPickerComponent, "ux-color-picker", ["ux-color-picker"], { "id": { "alias": "id"; "required": false; }; "inputColors": { "alias": "colors"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "buttonStyle": { "alias": "buttonStyle"; "required": false; }; "buttonSize": { "alias": "buttonSize"; "required": false; }; "showTooltips": { "alias": "showTooltips"; "required": false; }; "showInput": { "alias": "showInput"; "required": false; }; "inputMode": { "alias": "inputMode"; "required": false; }; "colorAriaLabel": { "alias": "colorAriaLabel"; "required": false; }; "switchModeAriaLabel": { "alias": "switchModeAriaLabel"; "required": false; }; "inputAriaLabel": { "alias": "inputAriaLabel"; "required": false; }; }, { "selectedChange": "selectedChange"; "inputModeChange": "inputModeChange"; "inputSubmit": "inputSubmit"; }, never, never, false, never>;
}
