import { Resource } from "../../common";
import { StoreQuestionnaireInvite, APIQuestionnaireInvite } from "./interfaces";
export declare class QuestionnaireInvite extends Resource {
    /**
     * The ID of the profile corresponding to the questionnaire invite.
     */
    profile: string;
    /**
     * The ID of the questionnaire.
     */
    questionnaire: string;
    constructor(
    /**
     * The ID of the profile corresponding to the questionnaire invite.
     */
    profile: string, 
    /**
     * The ID of the questionnaire.
     */
    questionnaire: string);
    /**
     * The name of the questionnaire invite resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the questionnaire invite resource.
     */
    static get serviceName(): string;
    /**
     * Convert the questionnaire into into a JSON serializable object for the API server.
     */
    serializeAPI(): APIQuestionnaireInvite;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The questionnaire invite data from the API server.
     */
    deserializeAPI(data: APIQuestionnaireInvite): void;
    /**
     * Serialize the questionnaire invite into a format for storing in the Redux store.
     */
    serializeRedux(): StoreQuestionnaireInvite;
    /**
     * Create a questionnaire invite from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The questionnaire invite object.
     */
    static apiFactory(data: APIQuestionnaireInvite): QuestionnaireInvite;
    /**
     * Create a questionnaire invite from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The questionnaire invite object.
     */
    static reduxFactory(data: StoreQuestionnaireInvite): QuestionnaireInvite;
    /**
     * Create a questionnaire invite.
     *
     * @param data Data from the api server.
     *
     * @returns The questionnaire invite object.
     */
    static create(data: {
        profile: string;
        questionnaire: string;
        email: string;
    }): Promise<QuestionnaireInvite>;
}
