import { BpSdkStore, removeActiveAnswerId, resetAddressValidation, resetAddressValidationAttempt, saveAddressValidationMissingAnswers, saveValidatedAddressAnswers, setAddressValidationStatus, stageAddressValidationAnswer, switchActiveQuestionSet, updateAnswer, validateAddress } from '@boldpenguin/sdk-redux';
import { AddressValidationId, AddressValidationVerdict, IAnalyticsTrackEventDetail, IAnswer, IAnswerUpdatedEvent, IGoogleAddressValidationComponent, IGoogleValidatedAddressView, IPartnerEngineConfig, IResultAddress, LoadingStates, ValidationCTA } from '@boldpenguin/sdk-types';
import { EventEmitter } from '../../stencil-public-runtime';
import { Unsubscribe } from '../../services/redux-store.service';
export declare class BpSdkGoogleAddressValidation implements IGoogleAddressValidationComponent {
    storeUnsubscribe?: Unsubscribe;
    setAddressValidationStatus: typeof setAddressValidationStatus;
    resetAddressValidation: typeof resetAddressValidation;
    resetAddressValidationAttempt: typeof resetAddressValidationAttempt;
    saveValidatedAddressAnswers: typeof saveValidatedAddressAnswers;
    saveAddressValidationMissingAnswers: typeof saveAddressValidationMissingAnswers;
    stageAddressValidationAnswer: typeof stageAddressValidationAnswer;
    switchActiveQuestionSet: typeof switchActiveQuestionSet;
    removeActiveAnswerId: typeof removeActiveAnswerId;
    updateAnswer: typeof updateAnswer;
    validateAddress: typeof validateAddress;
    isContinueDisabled: boolean;
    validatedAddressView: IGoogleValidatedAddressView;
    private isLatest;
    /**
     * Google validation address information and components
     */
    address: IResultAddress;
    /**
     * Group ID from the question set, used for address validation state lookup
     */
    addressValidationId: AddressValidationId;
    /**
     * Address group answer set mapped by field type
     */
    answerMap: {
        [key: string]: IAnswer;
    };
    /**
     * Answer resource states injected from redux
     */
    answersResourceState: LoadingStates;
    /**
     * IPartnerEngineConfig injected from redux
     */
    config: IPartnerEngineConfig;
    /**
     * Google api key, if no key library is not loaded
     */
    googleApiToken: string;
    /**
     * Unsaved answers from "fix" template missing field input
     */
    stagedAnswers: IAnswerUpdatedEvent[];
    /**
     * Is true when next button has been clicked
     */
    triggerValidation: boolean;
    /**
     * Is true when validation could not be completed
     */
    hasValidationError: boolean;
    /**
     * Action to be taken per google address validation response
     */
    verdict: AddressValidationVerdict;
    /**
     * Address to validate with the latest pending answer
     */
    latestAddress: {
        [key: string]: IAnswer;
    };
    /**
     * The number of validations performed on an address, injected from redux
     */
    validationAttempt: number;
    /**
     * Is true when validation has been triggered by something other than clicking the next button, injected from redux
     */
    isValidationTriggerOverridden: boolean;
    /**
     * The user entered address formatted, injected from redux
     */
    originalAddress: string;
    /**
     * Emits an analytics tracking event, see `AnalyticsTrackingEventName` (sdk-types) for event names
     */
    bpAnalyticsTrack: EventEmitter<IAnalyticsTrackEventDetail>;
    useExternal: boolean;
    shouldProceedNext: boolean;
    onStageAddressValidationAnswerForUpdate(event: CustomEvent<IAnswerUpdatedEvent>): void;
    onIsReadyToProceedNext(): void;
    onValidationError(): void;
    onTriggerValidation(): void;
    onValidationAttempt(): void;
    onVerdict(): void;
    onValidation(): void;
    onAddressValidation(): void;
    onValidationCallToAction(event: CustomEvent<ValidationCTA>): void;
    resetState(): void;
    connectedCallback(): void;
    componentWillLoad(): void;
    disconnectedCallback(): void;
    handleSubscriptions(): void;
    mapStateToProps: (state: BpSdkStore) => {
        address: IResultAddress;
        answersResourceState: LoadingStates;
        config: IPartnerEngineConfig;
        googleApiToken: string;
        stagedAnswers: IAnswerUpdatedEvent[];
        triggerValidation: boolean;
        hasValidationError: boolean;
        verdict: AddressValidationVerdict;
        latestAddress: {
            [x: string]: IAnswer;
        };
        validationAttempt: number;
        isValidationTriggerOverridden: boolean;
        originalAddress: string;
    };
    onCTAClick(action: ValidationCTA): void;
    continueWithConfirm: () => void;
    continueWithMissingInputFix: () => void;
    editAddress: () => void;
    continueAsEntered: () => void;
    resetIsLatest: () => void;
    render(): any[];
    renderExternal(): any;
    renderInternal(): any;
    renderConfirm(): any;
    renderTypo(): any;
    renderFix(): any;
}
