import { IApplicationFormQuestionSet, IAnswer, IDynamicQuestionGroup, IQuestionSetComponent, IDynamicQuestionPoolMap, IMappedQuestionGroupAnswers } from '@boldpenguin/sdk-types';
export declare class BpSdkQuestionSet implements IQuestionSetComponent {
    /**
     * Save Question set function
     */
    saveHandler: (questionSet: IApplicationFormQuestionSet) => void;
    /**
     * ApplicationFormQuestionSet to show questions + answers
     */
    questionSet: IApplicationFormQuestionSet;
    /**
     * Flag used to disable button if resources for question set are not ready
     */
    areResourcesReady: boolean;
    /**
     * Flag used to disable all answer inputs
     */
    locked: boolean;
    /**
     * Can Save
     */
    canSave: boolean;
    /**
     * Function that gets passed from the container to decide if an answer should render as part of a question group
     */
    shouldRenderQuestionGroup: (mappedQuestionGroups: Map<string, IMappedQuestionGroupAnswers>, answer: IAnswer) => boolean;
    /**
     * A Map of nested question groups for rendering nested question groups/question pools
     */
    questionGroupsWithAnswersAsKey: Map<string, IMappedQuestionGroupAnswers>;
    useExternal: boolean;
    questions: Array<IAnswer | IDynamicQuestionGroup>;
    questionGroups: IDynamicQuestionPoolMap;
    parentIds: string[];
    answers: IAnswer[];
    deletedPool: string | undefined;
    _answers: IAnswer[];
    onQuestionSetChange(questionSet: IApplicationFormQuestionSet): void;
    onAnswersChange(answers: IAnswer[]): void;
    onDeletedPoolChange(poolId: string): void;
    onSaveQuestionSet(): void;
    componentWillLoad(): void;
    /**
     * Moves any coverage limit anchors to the last position in the answer list
     */
    sortAnswers(answers: IAnswer[]): IAnswer[];
    isCoverageAnswer(answer: IAnswer): boolean;
    inQuestionGroup(answer: IAnswer): boolean;
    getAnswerPool(parentGroupId: string, poolId?: string): IDynamicQuestionGroup;
    onDeletePool({ detail }: {
        detail: string;
    }): void;
    render(): any;
    renderExternal(): any;
    preventRefresh: (e: Event) => boolean;
    renderInternal(): any;
    renderAnswer(answer: IAnswer): any[];
    renderDynamicGroup(answer: IAnswer): any;
}
