import { BpSdkStore, loadVin } from '@boldpenguin/sdk-redux';
import { IHttpResponse, IPartnerEngineConfig, IVehicleConfigurationOptions, IVehicleVinContainerComponent, IVehicleVinOptions, IVinConfig, IYearMakeModelConfigurationUpdate, LoadingStates } from '@boldpenguin/sdk-types';
import { EventEmitter } from '../../stencil-public-runtime';
import { Unsubscribe } from '../../services/redux-store.service';
export declare class BpSdkVehicleVinContainer implements IVehicleVinContainerComponent {
    storeUnsubscribe?: Unsubscribe;
    loadVin: typeof loadVin;
    /**
     * The id of the answer associated with this field
     */
    answerId: string;
    /**
     * The question code associated with this field
     */
    code: string;
    /**
     * VIN resource injected by redux
     */
    vinOptions: IVehicleVinOptions;
    /**
     * VIN resource injected by redux
     */
    configurationOptions: IVehicleConfigurationOptions;
    /**
     * Selection resource injected by redux
     */
    vinStatus: LoadingStates;
    /**
     * Vehicle question group ID
     */
    questionGroupId: string;
    /**
     * Can Save
     */
    canSave: boolean;
    /**
     * Current value of answer
     */
    value: string;
    config: IPartnerEngineConfig;
    lastResponse: IHttpResponse<IVinConfig>;
    canSearch: boolean;
    useExternal: boolean;
    touched: boolean;
    pristine: boolean;
    errorText: string;
    hasResult: boolean;
    isSearching: boolean;
    shouldSelectConfiguration: boolean;
    errors: string[];
    vinResource: LoadingStates;
    answeredBySource: string;
    vinUpdate: EventEmitter<{
        vin: string;
        answerId: string;
    }>;
    ymmcUpdate: EventEmitter<IYearMakeModelConfigurationUpdate>;
    el: HTMLBpSdkVehicleVinContainerElement;
    resetState(): void;
    handleSubscriptions: () => void;
    connectedCallback(): void;
    componentWillLoad(): void;
    mapStateToProps: (state: BpSdkStore) => {
        config: IPartnerEngineConfig;
        configurationOptions: IVehicleConfigurationOptions;
        vinOptions: IVehicleVinOptions;
        vinStatus: LoadingStates;
        answeredBySource: string;
    };
    onQuestionGroupIdChange(): void;
    onVinOptionsChange(vinOptions: IVehicleVinOptions): void;
    onVinStatusChange(vinStatus: LoadingStates): void;
    onConfigurationOptionsChange(configurationOptions: IVehicleConfigurationOptions): void;
    loadFocusEvents(): void;
    unloadFocusEvents(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    onValueChange(value: string): void;
    updateShouldSelectConfiguration(vin: string, configurations: IVehicleConfigurationOptions): void;
    private setVin;
    onValueUpdate({ detail }: {
        detail: any;
    }): void;
    updateErrors(pristine: boolean, touched: boolean, vin: string): void;
    onMakeDirty(): void;
    onFocusOut: () => void;
    render(): any[];
    renderExternal(): any;
    renderInternal(): any;
    getAnsweredBySource(state: BpSdkStore): string | undefined;
}
