import { BooleanInput } from '@angular/cdk/coercion';
import { ElementRef, EventEmitter, OnDestroy } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { Color } from '@deja-js/component/core/graphics';
import { Observable, Subject } from 'rxjs';
import { DejaColorFab } from './color-fab.class';
import * as i0 from "@angular/core";
export interface IColorEvent extends CustomEvent {
    color: Color;
}
/** Composant de selection d'une couleur. */
export declare class DejaColorSelectorComponent implements ControlValueAccessor, OnDestroy {
    control: NgControl;
    private static INDEX_ATTRIBUTE;
    /** Evénement déclenché lorsqu'une couleur est survolée par la souris. */
    readonly colorhover: EventEmitter<IColorEvent>;
    _resetcolor: Color;
    protected destroyed$: Subject<void>;
    private _value;
    private _colors$;
    private _resetcolor$;
    private _colorFabs;
    private _subColorFabs;
    private _selectedBaseIndex;
    private _selectedSubIndex;
    private _disabled;
    private _colorFabs$;
    private selectedBaseIndex$;
    private _subColorFabs$;
    private selectedSubIndex$;
    private hilightedBaseIndex;
    private hilightedBaseIndex$;
    private hilightedSubIndex;
    private hilightedSubIndex$;
    get subColorFabs(): DejaColorFab[];
    get subColorFabs$(): Observable<DejaColorFab[]>;
    get colorFabs$(): Observable<DejaColorFab[]>;
    set resetcolor(value: string | Color);
    constructor(elementRef: ElementRef, control: NgControl);
    /** Retourne ou definit si le selecteur est desactivé. */
    set disabled(value: BooleanInput);
    get disabled(): BooleanInput;
    /**
     * Retourne la meilleure couleur d'affichage pour une couleur donnée
     */
    getBestTextColor(value: string): string;
    resetDefaultColor(): void;
    /**
     * Definit les couleurs selectionables affichées.
     *
     * @param colors Structure hierarchique des couleurs selectionablea suivant le modele MaterialColor.
     */
    set colors(colors: Color[]);
    set selectedColor(color: Color);
    set value(value: Color);
    get value(): Color;
    writeValue(value: Color): void;
    registerOnChange(fn: (_a: unknown) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    onTouchedCallback: () => void;
    onChangeCallback: (_a: unknown) => void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DejaColorSelectorComponent, [null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DejaColorSelectorComponent, "deja-color-selector", never, { "resetcolor": "resetcolor"; "disabled": "disabled"; "colors": "colors"; }, { "colorhover": "colorhover"; }, never, never, false>;
}
