import { EventEmitter, ElementRef, OnInit } from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import { SelectItem } from './select-item';
import { OptionsBehavior } from './select-interfaces';
import { ControlValueAccessor } from '@angular/forms';
import { MessageEvent } from '../../../services/Broadcaster/message-event';
import { AutocompleteCountSettings } from '../../../entities/auto-complete-count-settings';
export declare class SelectComponent implements OnInit, ControlValueAccessor {
    private sanitizer;
    private messageEvent;
    items: Array<any>;
    disabled: boolean;
    active: Array<any>;
    title: string;
    autocompleteCountSettings: AutocompleteCountSettings;
    searchString: string;
    constructor(element: ElementRef, sanitizer: DomSanitizer, messageEvent: MessageEvent);
    readonly firstItemHasChildren: boolean;
    editInputData: boolean;
    searchSettings: object;
    allowClear: boolean;
    placeholder: string;
    idField: string;
    textField: string;
    multiple: boolean;
    isSearch: boolean;
    private _title;
    allowSearchIcons: boolean;
    hasError: boolean;
    searchPrepared: EventEmitter<string>;
    searchText: string;
    optionsAutocomplete: AutocompleteCountSettings;
    componentId: string;
    enterKeySuppress: boolean;
    opened: EventEmitter<any>;
    closed: EventEmitter<any>;
    inputText: EventEmitter<string>;
    data: EventEmitter<any>;
    selected: EventEmitter<any>;
    removed: EventEmitter<any>;
    typed: EventEmitter<any>;
    options: Array<SelectItem>;
    itemObjects: Array<SelectItem>;
    activeOption: SelectItem;
    element: ElementRef;
    inputMode: boolean;
    optionsOpened: boolean;
    private behavior;
    inputValue: string;
    private _items;
    private _disabled;
    private _active;
    propagateChange: (_: any) => void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    selectMatch(value: SelectItem, e?: Event | null): void;
    sanitize(html: string): SafeHtml;
    inputEvent(e: any, isUpMode?: boolean): void;
    ngOnInit(): any;
    remove(item: SelectItem): void;
    doEvent(type: string, value: any): void;
    clickedOutside(): void;
    matchClick(e: any): void;
    mainClick(event: any): void;
    selectActive(value: SelectItem): void;
    isActive(value: SelectItem): boolean;
    focusToInput(value?: string): void;
    private open;
    private hideOptions;
    private selectActiveMatch;
    private registerBroadcastEvent;
    private emitBroadcastEvent;
    selectionPrepared(value: string): void;
}
export declare class Behavior {
    optionsMap: Map<string, number>;
    actor: SelectComponent;
    constructor(actor: SelectComponent);
    fillOptionsMap(): void;
    ensureHighlightVisible(optionsMap?: Map<string, number> | null): void;
    private getActiveIndex;
}
export declare class GenericBehavior extends Behavior implements OptionsBehavior {
    constructor(actor: SelectComponent);
    first(): void;
    last(): void;
    prev(): void;
    next(): void;
    filter(query: RegExp): void;
}
export declare class ChildrenBehavior extends Behavior implements OptionsBehavior {
    constructor(actor: SelectComponent);
    first(): void;
    last(): void;
    prev(): void;
    next(): void;
    filter(query: RegExp): void;
}
