import { FieldType, StringType } from '@awell-health/extensions-core';
import { z } from 'zod';
import { Sex } from '../../../gql/graphql';
export declare const fields: {
    patientCode: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    firstName: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    lastName: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    email: {
        id: string;
        label: string;
        type: FieldType.STRING;
        /**
         * I am purposely not using the `email` stringType yet.
         * More information here: https://awellhealth.atlassian.net/jira/polaris/projects/AH/ideas/view/548618?selectedIssue=AH-176&issueViewLayout=sidebar&issueViewSection=capture&focusedInsightId=3144292
         */
        required: false;
    };
    birthDate: {
        id: string;
        label: string;
        type: FieldType.DATE;
        required: false;
    };
    mobilePhone: {
        id: string;
        label: string;
        type: FieldType.STRING;
        stringType: StringType.PHONE;
        required: false;
    };
    phone: {
        id: string;
        label: string;
        type: FieldType.STRING;
        stringType: StringType.PHONE;
        required: false;
    };
    preferredLanguage: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    sex: {
        id: string;
        label: string;
        description: string;
        type: FieldType.STRING;
        required: false;
        options: {
            dropdownOptions: {
                label: Sex;
                value: Sex;
            }[];
        };
    };
    city: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    country: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    state: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    street: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    zip: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    nationalRegistryNumber: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
    };
    patientTimzone: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
        options: {
            dropdownOptions: import("./getTimezones").OptionProps[];
        };
    };
};
export declare const FieldsValidationSchema: z.ZodObject<{
    patientCode: z.ZodOptional<z.ZodString>;
    firstName: z.ZodOptional<z.ZodString>;
    lastName: z.ZodOptional<z.ZodString>;
    birthDate: z.ZodOptional<z.ZodEffects<z.ZodDate, string, Date>>;
    email: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, string | undefined>;
    phone: z.ZodEffects<z.ZodUnion<[z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, import("libphonenumber-js").PhoneNumber | import("libphonenumber-js").ParseError, string>, import("libphonenumber-js").PhoneNumber | import("libphonenumber-js").ParseError, string>, import("libphonenumber-js").E164Number, string>>, z.ZodEffects<z.ZodLiteral<"">, undefined, "">]>, import("libphonenumber-js").E164Number | undefined, unknown>;
    mobilePhone: z.ZodEffects<z.ZodUnion<[z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, import("libphonenumber-js").PhoneNumber | import("libphonenumber-js").ParseError, string>, import("libphonenumber-js").PhoneNumber | import("libphonenumber-js").ParseError, string>, import("libphonenumber-js").E164Number, string>>, z.ZodEffects<z.ZodLiteral<"">, undefined, "">]>, import("libphonenumber-js").E164Number | undefined, unknown>;
    street: z.ZodOptional<z.ZodString>;
    state: z.ZodOptional<z.ZodString>;
    country: z.ZodOptional<z.ZodString>;
    city: z.ZodOptional<z.ZodString>;
    zip: z.ZodOptional<z.ZodString>;
    preferredLanguage: z.ZodOptional<z.ZodString>;
    sex: z.ZodOptional<z.ZodEffects<z.ZodEnum<[Sex.Female, Sex.Male, Sex.NotKnown]>, Sex, unknown>>;
    nationalRegistryNumber: z.ZodOptional<z.ZodString>;
    patientTimzone: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
}, "strip", z.ZodTypeAny, {
    firstName?: string | undefined;
    lastName?: string | undefined;
    email?: string | undefined;
    patientCode?: string | undefined;
    birthDate?: string | undefined;
    mobilePhone?: import("libphonenumber-js").E164Number | undefined;
    phone?: import("libphonenumber-js").E164Number | undefined;
    preferredLanguage?: string | undefined;
    sex?: Sex | undefined;
    city?: string | undefined;
    country?: string | undefined;
    state?: string | undefined;
    street?: string | undefined;
    zip?: string | undefined;
    nationalRegistryNumber?: string | undefined;
    patientTimzone?: string | undefined;
}, {
    firstName?: string | undefined;
    lastName?: string | undefined;
    email?: string | undefined;
    patientCode?: string | undefined;
    birthDate?: Date | undefined;
    mobilePhone?: unknown;
    phone?: unknown;
    preferredLanguage?: string | undefined;
    sex?: unknown;
    city?: string | undefined;
    country?: string | undefined;
    state?: string | undefined;
    street?: string | undefined;
    zip?: string | undefined;
    nationalRegistryNumber?: string | undefined;
    patientTimzone?: string | undefined;
}>;
