import { allEthnicities } from "./constants";
/**
 * The possible Ethnicities
 */
export declare type Ethnicity = typeof allEthnicities[number];
export declare type Gender = "Male" | "Female";
export declare type QuestionnaireInvites = Array<{
    /**
     * The id of the questionnaire invite.
     */
    readonly id: string;
    /**
     * The id of the questionnaire itself.
     */
    readonly questionnaire: string;
    /**
     * The status of the questionnaire.
     */
    readonly status: "sent" | "in-progress" | "completed";
}>;
/**
 * The Profile interface for the Redux store.
 * @field {string} id
 * @field {string} userId
 * @field {string} name
 * @field {Gender} sex
 * @field {number} birthYear
 * @field {Ethnicity} ethnicity
 * @field {email} email
 * @field {height} height
 * @field {weight} weight
 * @field {boolean} isV2
 */
export interface StoreProfile {
    id: string;
    userId: string;
    name: string;
    sex: Gender | null;
    birthYear: number | null;
    birthMonth: number | null;
    birthDay: number | null;
    ethnicity: Ethnicity | null;
    email: string;
    readonly questionnaireInvites: QuestionnaireInvites;
    height?: number | null;
    weight?: number | null;
    createdAt?: number;
    isV2?: boolean;
}
/**
 * The Profile interface for the API server.
 * @field {string} id
 * @field {string} user_id
 * @field {string} name
 * @field {Gender} sex
 * @field {number} birth_year
 * @field {Ethnicity} ethnicity
 * @field {email} email
 * @field {height} height
 * @field {weight} weight
 * @field {boolean} is_v2
 */
export interface APIProfile {
    id?: string;
    user_id: string;
    name: string;
    sex: Gender | null;
    birth_year: number | null;
    birth_month: number | null;
    birth_day: number | null;
    ethnicity: Ethnicity | null;
    email: string;
    readonly questionnaire_invites: QuestionnaireInvites;
    height?: number | null;
    weight?: number | null;
    created_at?: number;
    is_v2?: boolean;
}
/**
 * The Complete Profile interface for the API server.
 */
export interface CompleteAPIProfile {
    id?: string;
    user_id?: string;
    name: string;
    sex: Gender;
    birth_year: number;
    birth_month: number;
    birth_day: number;
    ethnicity: Ethnicity;
    email: string;
    readonly questionnaire_invites: QuestionnaireInvites;
    height?: number;
    weight?: number;
    created_at?: number;
    is_v2?: boolean;
}
