import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnInit, Renderer2 } from '@angular/core';
import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
import { MessageState } from '../../enums/message-state.enum';
import { SelectType } from '../../enums/select-type.enum';
import * as i0 from "@angular/core";
export declare class SelectComponent implements OnInit, AfterViewInit, ControlValueAccessor, Validator {
    private renderer;
    private el;
    private cdr;
    options: any[];
    id?: string;
    label?: string;
    placeholder?: string;
    labelInline: boolean;
    multiSelect: boolean;
    feedbackMessage?: string;
    feedbackState?: MessageState;
    showSearchIcon: boolean;
    showSelectAll: boolean;
    required: boolean;
    ariaLabel?: string;
    ariaDescribedBy?: string;
    disabled: boolean;
    type: SelectType;
    onChange: EventEmitter<any[]>;
    onOpen: EventEmitter<void>;
    onClose: EventEmitter<void>;
    inputId: string;
    searchTerm: string;
    selectedValues: any[];
    filteredOptions: any[];
    selectAllChecked: boolean;
    isOptionsListVisible: boolean;
    highlightedIndex: number;
    displayValue: string;
    isTooltipVisible: boolean;
    tooltipPosition: {
        top: number;
        left: number;
    };
    private onModelChange;
    private onModelTouched;
    constructor(renderer: Renderer2, el: ElementRef, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    handleKeyDown(event: KeyboardEvent): void;
    handleItemKeyDown(event: KeyboardEvent, option: any): void;
    filterByFirstLetter(letter: string): void;
    highlightNextItem(): void;
    highlightPreviousItem(): void;
    scrollToHighlightedItem(): void;
    getOptionsLength(): number;
    openOptionsList(): void;
    closeOptionsList(): void;
    toggleOptionsList(): void;
    onInputFocus(): void;
    toggleSelection(option: any, event?: MouseEvent): void;
    isOptionSelected(option: any): boolean;
    toggleSelectAll(event?: MouseEvent): void;
    updateSelectAllState(): void;
    onSearchChange(event: Event): void;
    updateDisplayValue(): void;
    onClick(event: MouseEvent): void;
    getFullSelectedText(): string;
    showTooltip(event: MouseEvent): void;
    hideTooltip(): void;
    isTextTruncated(): boolean;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    validate(control: AbstractControl): ValidationErrors | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "cfc-select", never, { "options": { "alias": "options"; "required": false; }; "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "labelInline": { "alias": "labelInline"; "required": false; }; "multiSelect": { "alias": "multiSelect"; "required": false; }; "feedbackMessage": { "alias": "feedbackMessage"; "required": false; }; "feedbackState": { "alias": "feedbackState"; "required": false; }; "showSearchIcon": { "alias": "showSearchIcon"; "required": false; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; }; "required": { "alias": "required"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, { "onChange": "onChange"; "onOpen": "onOpen"; "onClose": "onClose"; }, never, never, false, never>;
}
