import { BpSdkStore } from '@boldpenguin/sdk-redux';
import { IApplicationForm, IApplicationFormQuestionSet, ICustomEventContainerComponent, IQuotesState, LoadingStates } from '@boldpenguin/sdk-types';
import { EventEmitter } from '../../stencil-public-runtime';
import { Unsubscribe } from '../../services/redux-store.service';
export declare class BpSdkCustomEventContainer implements ICustomEventContainerComponent {
    storeUnsubscribe?: Unsubscribe;
    activeQuestionSet: IApplicationFormQuestionSet;
    applicationForm: IApplicationForm;
    isFormLoaded: boolean;
    isUserAuthenticated: boolean;
    quotes: IQuotesState[];
    answerResources: {
        [answerId: string]: LoadingStates;
    };
    questionSets: IApplicationFormQuestionSet[];
    useExternal: boolean;
    /**
     * Emits the entire question set when the active question set changes
     */
    activeQuestionSetChange: EventEmitter<IApplicationFormQuestionSet>;
    /**
     * Emitted when an application form is loaded
     */
    formLoaded: EventEmitter<IApplicationForm>;
    /**
     * Emits a boolean indicating whether the user is authenticated or not
     */
    userAuthenticationChanged: EventEmitter<boolean>;
    /**
     * Emits all quotes when any quotes change
     */
    quotesChanged: EventEmitter<IQuotesState[]>;
    /**
     * Emits a quote when it is successful
     */
    quoteSuccess: EventEmitter<IQuotesState>;
    /**
     * Emits a quote when it has failed
     */
    quoteFailure: EventEmitter<IQuotesState>;
    /**
     * Emits an answerId when it's loading state changes
     */
    answerStateChanged: EventEmitter<{
        answerId: string;
        loadingState: LoadingStates;
    }>;
    /**
     * Emits a question set when it's completion state has changed
     */
    questionSetCompletionChanged: EventEmitter<IApplicationFormQuestionSet>;
    /**
     * Emits a question set when it has been added to the application form
     */
    questionSetAdded: EventEmitter<IApplicationFormQuestionSet>;
    el: HTMLBpSdkCustomEventContainerElement;
    resetState(): void;
    handleSubscriptions: () => void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    componentWillLoad(): void;
    mapStateToProps: (state: BpSdkStore) => {
        activeQuestionSet: IApplicationFormQuestionSet;
        applicationForm: import("@boldpenguin/sdk-types").IFormState;
        isFormLoaded: boolean;
        isUserAuthenticated: boolean;
        quotes: IQuotesState[];
        answerResources: {
            [answerId: string]: LoadingStates;
        };
        questionSets: IApplicationFormQuestionSet[];
    };
    onActiveQuestionSetChange(activeQuestionSet: IApplicationFormQuestionSet, oldActiveQuestionSet?: IApplicationFormQuestionSet): void;
    onIsFormLoadedChange(isFormLoaded: boolean): void;
    onAuthenticatedChange(isAuthenticated: boolean): void;
    onQuotesChange(newQuotes: IQuotesState[], oldQuotes: IQuotesState[]): void;
    onAnswerResourcesChange(newResources: {
        [answerId: string]: LoadingStates;
    }, oldResources: {
        [answerId: string]: LoadingStates;
    }): void;
    onQuestionSetsChange(newQuestionSets: IApplicationFormQuestionSet[], oldQuestionSets?: IApplicationFormQuestionSet[]): void;
    componentWillUpdate(): void;
    render(): any[];
    renderExternal(): any;
    renderInternal(): any;
}
