export interface StoreQuestion {
    id: string;
    questionType: QuestionType;
    answerType: AnswerType;
    leadingText: string;
    questionText: string;
    followupText: string;
    order: number;
    category: string;
    answerOptions: Array<StoreOption>;
    dependentQuestions: Array<string>;
    constraints?: Array<StoreConstraint>;
    isAvailable?: boolean;
}
export interface APIQuestion {
    id?: string;
    question_type: QuestionType;
    answer_type: AnswerType;
    leading_text: string;
    question_text: string;
    followup_text: string;
    order: number;
    category: string;
    answer_options?: Array<APIOption>;
    dependent_questions: Array<string>;
    constraints?: Array<APIConstraint>;
    is_available?: boolean;
}
export declare type QuestionType = "standard" | "weight" | "height" | "big" | "sex" | "age" | "ethnicity" | "ancestry" | "birthplace" | "bmi";
export declare type AnswerType = "single choice" | "single mixed" | "multiple choices" | "free response" | "mixed" | "number";
export declare type OptionResourceType = "FreeResponseOption" | "MultipleChoiceOption" | "NoneOption";
export interface StoreBaseQuestionOption {
    id: string;
    optionText: string;
    order: number;
    resourcetype: OptionResourceType;
}
export interface APIBaseQuestionOption {
    id?: string;
    option_text: string;
    order: number;
    resourcetype: OptionResourceType;
}
export interface StoreMultipleChoiceOption extends StoreBaseQuestionOption {
    icon: string | null;
}
export interface APIMultipleChoiceOption extends APIBaseQuestionOption {
    icon: string | null;
}
export declare type StoreFreeResponseOption = StoreBaseQuestionOption;
export declare type APIFreeResponseOption = APIBaseQuestionOption;
export declare type StoreNoneOption = StoreBaseQuestionOption;
export declare type APINoneOption = APIBaseQuestionOption;
export declare type APIOption = APIMultipleChoiceOption | APIFreeResponseOption | APINoneOption;
export declare type APIConstraint = {
    id?: string;
    question?: string;
    constraint_question?: string;
    constraint_answer_id: string;
    required: boolean;
    resourcetype: "MultipleChoiceConstraint";
};
export declare type StoreConstraint = {
    id: string;
    question: string;
    constraintQuestion: string;
    constraintAnswerId: string;
    required: boolean;
    resourcetype: "MultipleChoiceConstraint";
};
export declare type StoreOption = StoreMultipleChoiceOption | StoreFreeResponseOption | StoreNoneOption;
export interface AnswerRequest {
    /**
     * Id of the answer (used in case of editing an existing answer)
     */
    id?: string;
    /**
     * Profile from which this answer was submitted
     */
    profile: string;
    /**
     * Ids of the selected options
     */
    options: string[];
    /**
     * Text input by the user in free response questions
     */
    response_text?: string;
}
export interface APIAnswer {
    /**
     * Id of the answer object created in the backend
     */
    id: string;
    /**
     * Id of the question to which this answer object corresponds
     */
    question: string;
    /**
     * Profile from which this answer was submitted
     */
    profile: string;
    /**
     * Ids of the selected options
     */
    options: string[];
    /**
     * Free response text entered (if any)
     */
    response_text: string;
}
export interface StoreAnswer {
    /**
     * Id of the answer object created in the backend
     */
    id: string;
    /**
     * Id of the question to which this answer object corresponds
     */
    question: string;
    /**
     * Profile from which this answer was submitted
     */
    profile: string;
    /**
     * Ids of the selected options
     */
    options: string[];
    /**
     * Free response text entered (if any)
     */
    responseText: string;
}
