import { BpSdkStore, removeActiveAnswerId, saveQuestionSet, switchActiveQuestionSet, updateErrors } from '@boldpenguin/sdk-redux';
import { IAnswer, IApplicationFormQuestionSet, IBackButtonContainerComponent, IPartnerEngineConfig, LoadingStates } from '@boldpenguin/sdk-types';
import { Unsubscribe } from '../../services/redux-store.service';
export declare class BpSdkBackButtonContainer implements IBackButtonContainerComponent {
    storeUnsubscribe?: Unsubscribe;
    updateErrors: typeof updateErrors;
    removeActiveAnswerId: typeof removeActiveAnswerId;
    saveQuestionSet: typeof saveQuestionSet;
    questionSet: typeof saveQuestionSet;
    switchActiveQuestionSet: typeof switchActiveQuestionSet;
    activeQuestionSet: IApplicationFormQuestionSet;
    /**
     * IPartnerEngineConfig injected from redux
     */
    config: IPartnerEngineConfig;
    /**
     * Controls disabled state of button
     */
    buttonDisabled: boolean;
    /**
     * Question sets
     */
    questionSets: IApplicationFormQuestionSet[];
    /**
     * Answer queue
     */
    queue: IAnswer[];
    /**
     * Answer resource states injected from redux
     */
    answersResourceState: LoadingStates;
    /**
     * Application form resource states injected from redux
     */
    applicationFormResourceState: LoadingStates;
    /**
     * Question pool resource states injected from redux
     */
    questionPoolResourceState: LoadingStates;
    /**
     * Question set resource states injected from redux
     */
    questionSetResourceState: LoadingStates;
    /**
     * Hide back button on first question set
     */
    shouldHideForFirstQuestionSet: boolean;
    useExternal: boolean;
    canSave: boolean;
    areResourcesReady: boolean;
    isReady: boolean;
    isFirstRun: boolean;
    isFirstQnSet: boolean;
    isDisabled: boolean;
    resetState(): void;
    handleSubscriptions: () => void;
    componentWillLoad(): void;
    onIsReady(isReady: boolean): void;
    updateAreResourcesReady(isFirstRun: boolean, isReady: boolean): void;
    onAnswersResourcesStateChange(state: LoadingStates): void;
    onApplicationFormResourceStateChange(state: LoadingStates): void;
    onQuestionPoolResourcesStateChange(state: LoadingStates): void;
    onQuestionSetResourcesStateChange(state: LoadingStates): void;
    calculateResourcesReady(resources?: {
        answers?: LoadingStates;
        applicationForm?: LoadingStates;
        questionPools?: LoadingStates;
        questionSets?: LoadingStates;
    }): boolean;
    onActiveQuestionSetChange(activeQuestionSet: IApplicationFormQuestionSet): void;
    onIsFirstRun(isFirstRun: boolean): void;
    onQuestionSetsChange(qns: IApplicationFormQuestionSet[]): void;
    updateIsFirstQnSet(qns: IApplicationFormQuestionSet[], activeQns?: IApplicationFormQuestionSet): void;
    onQueueChange(queue: IAnswer[]): void;
    mapStateToProps: (state: BpSdkStore) => {
        activeQuestionSet: IApplicationFormQuestionSet;
        config: IPartnerEngineConfig;
        questionSets: IApplicationFormQuestionSet[];
        queue: IAnswer[];
        answersResourceState: LoadingStates;
        applicationFormResourceState: LoadingStates;
        questionPoolResourceState: LoadingStates;
        questionSetResourceState: LoadingStates;
    };
    shouldRender(): boolean;
    render(): any[];
    renderExternal(): any;
    handleNavigateBack(): void;
    renderInternal(): any;
}
