import { EventEmitter } from '../../stencil-public-runtime';
import { IChoice, IAutocompleteInputComponent } from '@boldpenguin/sdk-types';
export declare class BpSdkAutocompleteInput implements IAutocompleteInputComponent {
    /**
     * Answer id
     */
    answerId: string;
    /**
     * Question id
     */
    questionId: string;
    /**
     * Field type
     */
    fieldType: string;
    /***
     * Selected choice id
     */
    choiceId: string;
    /***
     * Choices to display
     */
    choices: IChoice[];
    /**
     * question code
     */
    code: string;
    /**
     * Placeholder to display
     */
    placeholder: string;
    /**
     * Is required
     */
    required: boolean;
    /**
     * Error messages
     */
    errors: string[] | undefined;
    /**
     * Error text
     */
    errorText: string | undefined;
    /**
     * Aria label id's that describes input for screen readers
     */
    labelId: string;
    /**
     * Show choices
     */
    showChoices: boolean;
    /**
     * Is touched
     */
    touched: boolean;
    /**
     * Is pristine
     */
    pristine: boolean;
    /**
     * Is answer in complete state
     */
    isCompleted: boolean;
    /**
     * When true, the field will be readonly. It will display only the label and value as plain text.
     */
    isReadOnly: boolean;
    /**
     * Label to use
     */
    label: string;
    /**
     *  Labels that describe group
     */
    labelledBy: string;
    /**
     * Disables dropdown
     */
    disableDropdown: boolean;
    /**
     * Allow text to fall through if no selected choices
     */
    allowFallthrough: boolean;
    /**
     * Should show no choices fallback if list is empty
     */
    showNoChoicesFallback: boolean;
    /**
     * Help text
     */
    helpText: string;
    /**
     * Specifically how the question was answered (ie. "ACORD 126")
     */
    answeredBySource: string | undefined;
    _choices: IChoice[];
    _labelledBy: string;
    _showChoices: boolean;
    filterText: string;
    value: string;
    choice: IChoice;
    choiceText: string;
    focusedIndex: number;
    useExternal: boolean;
    isFocused: boolean;
    text: string;
    valueUpdate: EventEmitter<string[]>;
    filterUpdate: EventEmitter<{
        id: string;
        value: string;
    }>;
    removeActiveAnswer: EventEmitter<void>;
    updateActiveAnswer: EventEmitter<string>;
    el: HTMLElement;
    resetState(): void;
    connectedCallback(): void;
    componentWillLoad(): void;
    onAriaLabelledByChange(labelId: string): void;
    onLabelledByChange(labelledBy: string): void;
    updateLabelledBy(aria: string, ids: string): void;
    onChoicesChange(choices: IChoice[]): void;
    onChoiceIdChange(choiceId: string): void;
    onShowChoicesChange(newValue: boolean): void;
    getText(choice: IChoice): string;
    onChoiceChange(choice: IChoice): void;
    onChoiceTextChange(text: string): void;
    hideChoices: () => void;
    onFocus: () => void;
    onBlur: () => void;
    onValueChange(newValue: string, oldValue: string): void;
    debounceFilterChoices: () => void;
    filterChoices(): void;
    onFilterChange(value: string): void;
    checkForSelectedChoice(): void;
    choiceSelected: (choice?: IChoice) => void;
    displayChoice(choice: IChoice): string;
    onKeydown: (event: KeyboardEvent) => void;
    handleKeyEvent(keyName: string): void;
    getKeyEventOptions(keyName: string): {
        goToNext: boolean;
        goToPrevious: boolean;
        shouldMoveIndex: boolean;
        isOpenOrSelectKey: boolean;
    };
    getIndexToSelect(keyName: string, { goToPrevious, shouldMoveIndex, isOpenOrSelectKey }: {
        [key: string]: boolean;
    }): number;
    mapKeyEventToAction(indexToSelect: number | null, { shouldMoveIndex, goToPrevious, goToNext, }: {
        [key: string]: boolean;
    }): void;
    focusOption(index: number): void;
    selectOptionByIndex(index: number): void;
    getSelectableIndex(index: number): number;
    handleOutsideClick(): void;
    handleClick(e: Event): void;
    render(): any[];
    renderExternal(): any;
    renderInternal(): any;
    onOptionClick: (choice: IChoice) => (e: Event) => void;
    renderOptions(): any;
    renderReadOnlyElement(value: string): any;
}
