import { Optional, Resource } from "../../common";
import { StoreIntakeForm, APIIntakeForm, IntakeFormType } from "./interfaces";
export declare class IntakeForm extends Resource {
    createdAt: string;
    updatedAt: string;
    userId: string;
    title: string;
    introductionMessage: string;
    questionnaire: string;
    formType: IntakeFormType;
    archived: boolean;
    numberOfQuestions: number;
    constructor(createdAt: string, updatedAt: string, userId: string, title: string, introductionMessage: string, questionnaire: string, formType: IntakeFormType, archived: boolean, numberOfQuestions: number);
    /**
     * The name of the intake form resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the client in take form resource.
     */
    static get serviceName(): string;
    /**
     * Convert the intake form into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APIIntakeForm, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The intake form data from the API server.
     */
    deserializeAPI(data: APIIntakeForm): void;
    /**
     * Serialize the intake form into a format for storing in the Redux store.
     */
    serializeRedux(): StoreIntakeForm;
    /**
     * Create an intake form from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The intake form object.
     */
    static apiFactory(data: APIIntakeForm): IntakeForm;
    /**
     * Create a intake form from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The intake form object.
     */
    static reduxFactory(data: StoreIntakeForm): IntakeForm;
}
