import { Optional } from "../../common";
import { IntakeForm, IntakeFormType } from "../intake-form";
import { APIClientIntakeForm, ClientIntakeStatusType, StoreClientIntakeForm } from "./interfaces";
export declare class ClientIntakeForm extends IntakeForm {
    status: ClientIntakeStatusType;
    sentOn?: string;
    constructor(createdAt: string, updatedAt: string, userId: string, title: string, introductionMessage: string, questionnaire: string, formType: IntakeFormType, archived: boolean, numberOfQuestions: number, status: ClientIntakeStatusType, sentOn?: string);
    /**
     * 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<APIClientIntakeForm, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The intake form data from the API server.
     */
    deserializeAPI(data: APIClientIntakeForm): void;
    /**
     * Serialize the intake form into a format for storing in the Redux store.
     */
    serializeRedux(): StoreClientIntakeForm;
    /**
     * Create an intake form from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The intake form object.
     */
    static apiFactory(data: APIClientIntakeForm): ClientIntakeForm;
    /**
     * Create a intake form from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The intake form object.
     */
    static reduxFactory(data: StoreClientIntakeForm): ClientIntakeForm;
}
