/// <reference types="lodash" />
import { BpSdkStore, getConfigOptions } from '@boldpenguin/sdk-redux';
import { IAnswer, IConfigOptions, IDynamicInputEventContainerComponent, IQuestion, TAnswerValue, IAnswerUpdatedEvent } from '@boldpenguin/sdk-types';
import { EventEmitter } from '../../stencil-public-runtime';
import { Unsubscribe } from '../../services/redux-store.service';
export declare class BpSdkDynamicInputEventContainer implements IDynamicInputEventContainerComponent {
    SAVE_ANSWER_DEBOUNCE_MS: number;
    storeUnsubscribe?: Unsubscribe;
    getConfigOptions: typeof getConfigOptions;
    /**
     * Answer
     */
    answer: IAnswer;
    /**
     * Should hide label
     */
    shouldHideLabel: boolean;
    /**
     * Use select alias
     */
    useSelectAlias: boolean;
    /**
     * Show business class selector
     */
    showBusinessClassificationSelector: boolean;
    /**
     * Error messages
     */
    errors: string[] | undefined;
    /**
     * Label to use
     */
    label: string;
    /**
     * Disables Google Autocomplete for address groups when true
     */
    disableAddressAutocomplete: boolean;
    /**
     *  Labels that describe group
     */
    labelledBy: string;
    updateActiveAnswerId: (params: string) => void;
    updateErrors: (params: {
        answer: IAnswer;
        errors: string[];
    }) => void;
    /**
     * *Deprecated* Use COVERAGE_REFERENCES from sdk-types
     * Reference types for coverage selection
     */
    referenceTypes: string[];
    /**
     * Web component config options injected from redux
     */
    configOptions: IConfigOptions;
    fieldType: string;
    isCoverageType: boolean;
    labelId: string;
    isLabelledField: boolean;
    inputComponentType: string;
    _label: string;
    lastAnswer: TAnswerValue;
    touched: boolean;
    pristine: boolean;
    useExternal: boolean;
    isDropdown: boolean;
    isNumeric: boolean;
    _errors: string[];
    hasPendingUpdate: boolean;
    debounceTime: any;
    el: HTMLElement;
    answerId: string;
    /**
     * Passes information needed to update answer
     */
    saveAnswer: EventEmitter<IAnswerUpdatedEvent>;
    /**
     * Remove active answer
     */
    removeActiveAnswer: EventEmitter<void>;
    resetState(): void;
    handleSubscriptions: () => void;
    mapStateToProps: (state: BpSdkStore) => {
        configOptions: IConfigOptions;
    };
    connectedCallback(): void;
    onAnswerChange(answer: IAnswer): void;
    onHideLabelChange(shouldHideLabel: boolean): void;
    onLabelChange(label: string): void;
    onConfigOptionsChange(options: IConfigOptions): void;
    setDebounceTime(fieldType: string): void;
    updateLabel(question: IQuestion, label: string, shouldHideLabel: boolean): void;
    onErrorsChange(errors: string[], oldErrors: string[]): void;
    onTouchedChange(touched: boolean, oldValue: boolean): void;
    onPristineChange(pristine: boolean, oldValue: boolean): void;
    determineErrors(errors: string[], touched: boolean, pristine: boolean): void;
    updateErrorState(answer: IAnswer): void;
    onMakeDirty(): void;
    makeDirty(): void;
    onValueUpdate(event: CustomEvent<string | string[]>): void;
    emitSaveAnswer(newValue: string | string[]): void;
    debouncedEmit: import("lodash").DebouncedFunc<(newValue: string | string[]) => void>;
    unique(keys: string[]): string[];
    cleanValue(value: string | string[]): string | string[];
    save(data: string | string[]): void;
    updateValue(data: string | string[]): void;
    onUseExternalChange(useExternal: boolean): void;
    loadFocusEvents(): void;
    unloadFocusEvents(): void;
    getComponentType(fieldType: string): string;
    onFocusIn: () => void;
    onFocusOut: () => void;
    componentWillLoad(): void;
    componentWillUpdate(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    render(): any[];
    renderExternal(): any;
    renderInternal(): any;
    private answeredBySource;
}
