/// <reference types="lodash" />
import { EventEmitter } from '../../stencil-public-runtime';
import { IChoice, ISelectInputComponent } from '@boldpenguin/sdk-types';
export declare class BpSdkSelectInput implements ISelectInputComponent {
    /**
     * Answer id
     */
    answerId: string;
    /**
     * Autocomplete attribute value for input
     */
    autoComplete: string;
    /**
     * Placeholder to display
     */
    placeholder: string;
    /**
     * Use alias for choices
     */
    useAlias: boolean;
    /**
     * Question code
     */
    code: string;
    /**
     * Choice id selected. Used for single selection.
     */
    choiceId: string;
    /**
     * Choice ids selected. Used for multiple selection.
     */
    choiceIds: string[];
    /**
     * Whether to allow multi-select.
     */
    multiple: boolean;
    /**
     * Choices to display
     */
    choices: IChoice[];
    /**
     * Current value
     */
    value: string;
    /**
     * Aria label id's that describes input for screen readers
     */
    labelId: string;
    /**
     * Error messages
     */
    errors: string[];
    /**
     * Error text
     */
    errorText: string;
    /**
     * 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;
    /**
     * Question Id
     */
    questionId: string;
    /**
     * Field type
     */
    fieldType: string;
    /**
     * Is required
     */
    required: boolean;
    /**
     * Label to use
     */
    label: string;
    /**
     *  Labels that describe group
     */
    labelledBy: string;
    /**
     * Help text
     */
    helpText: string;
    /**
     * Specifically how the question was answered (ie. "ACORD 126")
     */
    answeredBySource: string | undefined;
    choice: string[];
    _value: string[];
    _labelledBy: string;
    showSelectList: boolean;
    selectText: string;
    focusedIndex: number;
    selectButtonId: string;
    accumulateFilter: boolean;
    currentFilterText: string;
    useExternal: boolean;
    valueUpdate: EventEmitter<string[]>;
    removeActiveAnswer: EventEmitter<void>;
    updateActiveAnswer: EventEmitter<string>;
    el: HTMLElement;
    onAriaLabelledByChange(labelId: string): void;
    onLabelledByChange(labelledBy: string): void;
    updateLabelledBy(aria: string, ids: string): void;
    onCodeChange(newValue: string): void;
    onKeydown: (event: KeyboardEvent) => void;
    onChoiceIdChange(choice: string): void;
    onChoiceIdsChange(choiceIds: string[], oldIds: string[]): void;
    onShowSelectListChange(showList: boolean): void;
    resetState(): void;
    connectedCallback(): void;
    componentWillLoad(): void;
    onChange: (event: Event) => void;
    focusOption(index: number): void;
    selectFocus(e: MouseEvent): void;
    focusElement(): void;
    choiceText(choice: IChoice): string;
    clickSelectItem: (choiceId: string) => void;
    delayedClickSelectItem: import("lodash").DebouncedFunc<(choiceId: string) => void>;
    getControlValue(choiceId: string): string[];
    clickSelectButton(): void;
    isChosen(choiceId: string): boolean;
    handleKeyEvent(keyName: string): void;
    getKeyEventOptions(keyName: string): {
        goToNext: boolean;
        goToPrevious: boolean;
        shouldMoveIndex: boolean;
        addToFilter: boolean;
        isOpenOrSelectKey: boolean;
        openSelectList: boolean;
    };
    getIndexToSelect(keyName: string, { goToPrevious, shouldMoveIndex, isOpenOrSelectKey }: {
        [key: string]: boolean;
    }): number;
    mapKeyEventToAction(keyName: string, indexToSelect: number | null, { openSelectList, shouldMoveIndex, goToPrevious, addToFilter, }: {
        [key: string]: boolean;
    }): void;
    selectOptionByIndex(index: number): void;
    updateTextDisplayed: import("lodash").DebouncedFunc<(choiceValue: string | string[]) => void>;
    updateMultiSelectText(choiceIds: string[]): void;
    updateSingleSelectText(choiceValue: string): void;
    onValueChange(newValue: string[], oldValue: string[]): void;
    filterText(newValue: string): void;
    listenToTextFilter: import("lodash").DebouncedFunc<(newValue: any) => void>;
    handleTextEntry(text: string): void;
    getSelectableIndex(index: number): number;
    handleOutsideClick(): void;
    renderSubmitButton(): any;
    onSubmitButtonClick: ($event: MouseEvent) => void;
    onAutocomplete: (e: InputEvent) => void;
    renderHiddenOptions(): any;
    renderMultiSelectChoices(choice: IChoice): any;
    renderSingleSelectChoices(choice: IChoice): any;
    renderChoice(choice: IChoice): any[];
    renderChoices(): any[];
    renderVisibleOptions(): any;
    renderOptions(): any[];
    onListBlur: () => void;
    onChoiceClick: (choice: IChoice) => (e: MouseEvent) => void;
    render(): any[];
    renderExternal(): any;
    renderInternal(): any;
    renderReadOnlyElement(value: string): any;
}
