import { ElementRef, EventEmitter, TemplateRef } from '@angular/core';
import { TypeaheadOptionApi } from './typeahead-option-api';
import { TypeaheadOptionContext } from './typeahead-option-context';
import { TypeaheadVisibleOption } from './typeahead-visible-option';
import * as i0 from "@angular/core";
export declare class TypeaheadOptionsListComponent<T> {
    id: string;
    startIndex: number;
    options: TypeaheadVisibleOption<T>[];
    highlighted: TypeaheadVisibleOption<T>;
    activeKey: string;
    disabledOptions: T[];
    isMultiselectable: boolean;
    optionTemplate: TemplateRef<TypeaheadOptionContext<T>>;
    optionApi: TypeaheadOptionApi;
    typeaheadElement: ElementRef<HTMLElement>;
    ariaLabel: string;
    optionMouseover: EventEmitter<TypeaheadOptionDomEvent<T, MouseEvent>>;
    optionMousedown: EventEmitter<TypeaheadOptionDomEvent<T, MouseEvent>>;
    optionClick: EventEmitter<TypeaheadOptionDomEvent<T, MouseEvent>>;
    trackByFn(_: number, option: TypeaheadVisibleOption<T>): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<TypeaheadOptionsListComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TypeaheadOptionsListComponent<any>, "ux-typeahead-options-list", never, { "id": { "alias": "id"; "required": false; }; "startIndex": { "alias": "startIndex"; "required": false; }; "options": { "alias": "options"; "required": false; }; "highlighted": { "alias": "highlighted"; "required": false; }; "activeKey": { "alias": "activeKey"; "required": false; }; "disabledOptions": { "alias": "disabledOptions"; "required": false; }; "isMultiselectable": { "alias": "isMultiselectable"; "required": false; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; }; "optionApi": { "alias": "optionApi"; "required": false; }; "typeaheadElement": { "alias": "typeaheadElement"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "optionMouseover": "optionMouseover"; "optionMousedown": "optionMousedown"; "optionClick": "optionClick"; }, never, never, false, never>;
}
export interface TypeaheadOptionDomEvent<T, E extends Event> {
    option: TypeaheadVisibleOption<T>;
    event: E;
}
