import { z } from 'zod';
export declare const patientSchema: z.ZodObject<{
    resourceType: z.ZodLiteral<"Patient">;
    extension: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
        url: z.ZodString;
        valueCode: z.ZodEnum<["M", "F", "O", "UNK"]>;
    }, "strip", z.ZodTypeAny, {
        url: string;
        valueCode: "M" | "F" | "O" | "UNK";
    }, {
        url: string;
        valueCode: "M" | "F" | "O" | "UNK";
    }>, z.ZodObject<{
        url: z.ZodString;
        extension: z.ZodArray<z.ZodObject<{
            url: z.ZodOptional<z.ZodString>;
            valueCoding: z.ZodObject<{
                code: z.ZodString;
                system: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                code: string;
                system: string;
            }, {
                code: string;
                system: string;
            }>;
            valueString: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }, {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    }, {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    }>, z.ZodObject<{
        url: z.ZodString;
        extension: z.ZodArray<z.ZodObject<{
            url: z.ZodOptional<z.ZodString>;
            valueCoding: z.ZodObject<{
                system: z.ZodString;
                code: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                code: string;
                system: string;
            }, {
                code: string;
                system: string;
            }>;
            valueString: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }, {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    }, {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    }>, z.ZodObject<{
        url: z.ZodString;
        valueCode: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        valueCode: string;
    }, {
        url: string;
        valueCode: string;
    }>, z.ZodObject<{
        url: z.ZodString;
        valueString: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        valueString: string;
    }, {
        url: string;
        valueString: string;
    }>, z.ZodObject<{
        url: z.ZodString;
        valueString: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        valueString: string;
    }, {
        url: string;
        valueString: string;
    }>, z.ZodObject<{
        url: z.ZodString;
        extension: z.ZodArray<z.ZodObject<{
            url: z.ZodString;
            valueIdentifier: z.ZodObject<{
                value: z.ZodString;
                system: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                value: string;
                system: string;
            }, {
                value: string;
                system: string;
            }>;
            valueString: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }, {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        url: string;
        extension: {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }[];
    }, {
        url: string;
        extension: {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }[];
    }>, z.ZodObject<{
        url: z.ZodString;
        extension: z.ZodArray<z.ZodObject<{
            url: z.ZodString;
            valueString: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            url: string;
            valueString: string;
        }, {
            url: string;
            valueString: string;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        url: string;
        extension: {
            url: string;
            valueString: string;
        }[];
    }, {
        url: string;
        extension: {
            url: string;
            valueString: string;
        }[];
    }>]>, "many">>;
    identifier: z.ZodOptional<z.ZodArray<z.ZodObject<{
        system: z.ZodOptional<z.ZodString>;
        value: z.ZodOptional<z.ZodString>;
        use: z.ZodOptional<z.ZodEnum<["usual", "official", "secondary", "temp", "old"]>>;
        period: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodArray<z.ZodObject<{
            start: z.ZodEffects<z.ZodDate, string, Date>;
            end: z.ZodOptional<z.ZodEffects<z.ZodDate, string, Date>>;
        }, "strip", z.ZodTypeAny, {
            start: string;
            end?: string | undefined;
        }, {
            start: Date;
            end?: Date | undefined;
        }>, "many">>, z.ZodObject<{
            start: z.ZodEffects<z.ZodDate, string, Date>;
            end: z.ZodOptional<z.ZodEffects<z.ZodDate, string, Date>>;
        }, "strip", z.ZodTypeAny, {
            start: string;
            end?: string | undefined;
        }, {
            start: Date;
            end?: Date | undefined;
        }>]>>;
        type: z.ZodOptional<z.ZodObject<{
            coding: z.ZodArray<z.ZodObject<{
                code: z.ZodString;
                display: z.ZodOptional<z.ZodString>;
                system: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }, {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }>, "many">;
        }, "strip", z.ZodTypeAny, {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        }, {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        }>>;
        assigner: z.ZodOptional<z.ZodObject<{
            display: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            display: string;
        }, {
            display: string;
        }>>;
    }, "strip", z.ZodTypeAny, {
        value?: string | undefined;
        type?: {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        } | undefined;
        system?: string | undefined;
        period?: {
            start: string;
            end?: string | undefined;
        } | {
            start: string;
            end?: string | undefined;
        }[] | undefined;
        use?: "usual" | "official" | "secondary" | "temp" | "old" | undefined;
        assigner?: {
            display: string;
        } | undefined;
    }, {
        value?: string | undefined;
        type?: {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        } | undefined;
        system?: string | undefined;
        period?: {
            start: Date;
            end?: Date | undefined;
        } | {
            start: Date;
            end?: Date | undefined;
        }[] | undefined;
        use?: "usual" | "official" | "secondary" | "temp" | "old" | undefined;
        assigner?: {
            display: string;
        } | undefined;
    }>, "many">>;
    active: z.ZodOptional<z.ZodBoolean>;
    name: z.ZodArray<z.ZodObject<{
        use: z.ZodString;
        family: z.ZodOptional<z.ZodString>;
        given: z.ZodArray<z.ZodString, "many">;
        prefix: z.ZodOptional<z.ZodString>;
        suffix: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        use: string;
        given: string[];
        family?: string | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    }, {
        use: string;
        given: string[];
        family?: string | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    }>, "many">;
    telecom: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        extension: z.ZodOptional<z.ZodArray<z.ZodObject<{
            url: z.ZodString;
            valueBoolean: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            url: string;
            valueBoolean: boolean;
        }, {
            url: string;
            valueBoolean: boolean;
        }>, "many">>;
        system: z.ZodString;
        value: z.ZodString;
        use: z.ZodOptional<z.ZodString>;
        rank: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        value: string;
        system: string;
        id?: string | undefined;
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        use?: string | undefined;
        rank?: number | undefined;
    }, {
        value: string;
        system: string;
        id?: string | undefined;
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        use?: string | undefined;
        rank?: number | undefined;
    }>, "many">>;
    gender: z.ZodOptional<z.ZodEnum<["male", "female", "other", "unknown"]>>;
    birthDate: z.ZodUnion<[z.ZodString, z.ZodString, z.ZodString]>;
    contact: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodObject<{
            text: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            text: string;
        }, {
            text: string;
        }>;
        relationship: z.ZodOptional<z.ZodArray<z.ZodObject<{
            text: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            text: string;
        }, {
            text: string;
        }>, "many">>;
        telecom: z.ZodOptional<z.ZodArray<z.ZodObject<{
            system: z.ZodString;
            value: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            system: string;
        }, {
            value: string;
            system: string;
        }>, "many">>;
        extension: z.ZodOptional<z.ZodArray<z.ZodObject<{
            url: z.ZodString;
            valueBoolean: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            url: string;
            valueBoolean: boolean;
        }, {
            url: string;
            valueBoolean: boolean;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        name: {
            text: string;
        };
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        relationship?: {
            text: string;
        }[] | undefined;
        telecom?: {
            value: string;
            system: string;
        }[] | undefined;
    }, {
        name: {
            text: string;
        };
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        relationship?: {
            text: string;
        }[] | undefined;
        telecom?: {
            value: string;
            system: string;
        }[] | undefined;
    }>, "many">>;
    address: z.ZodOptional<z.ZodArray<z.ZodObject<{
        use: z.ZodEnum<["home", "work", "temp", "old"]>;
        type: z.ZodEnum<["both", "physical", "postal"]>;
        line: z.ZodArray<z.ZodString, "many">;
        text: z.ZodOptional<z.ZodString>;
        city: z.ZodString;
        state: z.ZodString;
        postalCode: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "both" | "physical" | "postal";
        city: string;
        state: string;
        use: "temp" | "old" | "home" | "work";
        line: string[];
        postalCode: string;
        text?: string | undefined;
    }, {
        type: "both" | "physical" | "postal";
        city: string;
        state: string;
        use: "temp" | "old" | "home" | "work";
        line: string[];
        postalCode: string;
        text?: string | undefined;
    }>, "many">>;
    deceased: z.ZodOptional<z.ZodBoolean>;
    photo: z.ZodOptional<z.ZodArray<z.ZodObject<{
        data: z.ZodOptional<z.ZodString>;
        url: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        data?: string | undefined;
        url?: string | undefined;
    }, {
        data?: string | undefined;
        url?: string | undefined;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    birthDate: string;
    name: {
        use: string;
        given: string[];
        family?: string | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    }[];
    resourceType: "Patient";
    active?: boolean | undefined;
    address?: {
        type: "both" | "physical" | "postal";
        city: string;
        state: string;
        use: "temp" | "old" | "home" | "work";
        line: string[];
        postalCode: string;
        text?: string | undefined;
    }[] | undefined;
    identifier?: {
        value?: string | undefined;
        type?: {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        } | undefined;
        system?: string | undefined;
        period?: {
            start: string;
            end?: string | undefined;
        } | {
            start: string;
            end?: string | undefined;
        }[] | undefined;
        use?: "usual" | "official" | "secondary" | "temp" | "old" | undefined;
        assigner?: {
            display: string;
        } | undefined;
    }[] | undefined;
    extension?: ({
        url: string;
        valueCode: "M" | "F" | "O" | "UNK";
    } | {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        valueCode: string;
    } | {
        url: string;
        valueString: string;
    } | {
        url: string;
        valueString: string;
    } | {
        url: string;
        extension: {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        extension: {
            url: string;
            valueString: string;
        }[];
    })[] | undefined;
    telecom?: {
        value: string;
        system: string;
        id?: string | undefined;
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        use?: string | undefined;
        rank?: number | undefined;
    }[] | undefined;
    gender?: "unknown" | "male" | "female" | "other" | undefined;
    contact?: {
        name: {
            text: string;
        };
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        relationship?: {
            text: string;
        }[] | undefined;
        telecom?: {
            value: string;
            system: string;
        }[] | undefined;
    }[] | undefined;
    deceased?: boolean | undefined;
    photo?: {
        data?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
}, {
    birthDate: string;
    name: {
        use: string;
        given: string[];
        family?: string | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    }[];
    resourceType: "Patient";
    active?: boolean | undefined;
    address?: {
        type: "both" | "physical" | "postal";
        city: string;
        state: string;
        use: "temp" | "old" | "home" | "work";
        line: string[];
        postalCode: string;
        text?: string | undefined;
    }[] | undefined;
    identifier?: {
        value?: string | undefined;
        type?: {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        } | undefined;
        system?: string | undefined;
        period?: {
            start: Date;
            end?: Date | undefined;
        } | {
            start: Date;
            end?: Date | undefined;
        }[] | undefined;
        use?: "usual" | "official" | "secondary" | "temp" | "old" | undefined;
        assigner?: {
            display: string;
        } | undefined;
    }[] | undefined;
    extension?: ({
        url: string;
        valueCode: "M" | "F" | "O" | "UNK";
    } | {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        valueCode: string;
    } | {
        url: string;
        valueString: string;
    } | {
        url: string;
        valueString: string;
    } | {
        url: string;
        extension: {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        extension: {
            url: string;
            valueString: string;
        }[];
    })[] | undefined;
    telecom?: {
        value: string;
        system: string;
        id?: string | undefined;
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        use?: string | undefined;
        rank?: number | undefined;
    }[] | undefined;
    gender?: "unknown" | "male" | "female" | "other" | undefined;
    contact?: {
        name: {
            text: string;
        };
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        relationship?: {
            text: string;
        }[] | undefined;
        telecom?: {
            value: string;
            system: string;
        }[] | undefined;
    }[] | undefined;
    deceased?: boolean | undefined;
    photo?: {
        data?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
}>;
export declare const patientWithIdSchema: z.ZodObject<z.objectUtil.extendShape<{
    resourceType: z.ZodLiteral<"Patient">;
    extension: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
        url: z.ZodString;
        valueCode: z.ZodEnum<["M", "F", "O", "UNK"]>;
    }, "strip", z.ZodTypeAny, {
        url: string;
        valueCode: "M" | "F" | "O" | "UNK";
    }, {
        url: string;
        valueCode: "M" | "F" | "O" | "UNK";
    }>, z.ZodObject<{
        url: z.ZodString;
        extension: z.ZodArray<z.ZodObject<{
            url: z.ZodOptional<z.ZodString>;
            valueCoding: z.ZodObject<{
                code: z.ZodString;
                system: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                code: string;
                system: string;
            }, {
                code: string;
                system: string;
            }>;
            valueString: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }, {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    }, {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    }>, z.ZodObject<{
        url: z.ZodString;
        extension: z.ZodArray<z.ZodObject<{
            url: z.ZodOptional<z.ZodString>;
            valueCoding: z.ZodObject<{
                system: z.ZodString;
                code: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                code: string;
                system: string;
            }, {
                code: string;
                system: string;
            }>;
            valueString: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }, {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    }, {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    }>, z.ZodObject<{
        url: z.ZodString;
        valueCode: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        valueCode: string;
    }, {
        url: string;
        valueCode: string;
    }>, z.ZodObject<{
        url: z.ZodString;
        valueString: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        valueString: string;
    }, {
        url: string;
        valueString: string;
    }>, z.ZodObject<{
        url: z.ZodString;
        valueString: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        valueString: string;
    }, {
        url: string;
        valueString: string;
    }>, z.ZodObject<{
        url: z.ZodString;
        extension: z.ZodArray<z.ZodObject<{
            url: z.ZodString;
            valueIdentifier: z.ZodObject<{
                value: z.ZodString;
                system: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                value: string;
                system: string;
            }, {
                value: string;
                system: string;
            }>;
            valueString: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }, {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        url: string;
        extension: {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }[];
    }, {
        url: string;
        extension: {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }[];
    }>, z.ZodObject<{
        url: z.ZodString;
        extension: z.ZodArray<z.ZodObject<{
            url: z.ZodString;
            valueString: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            url: string;
            valueString: string;
        }, {
            url: string;
            valueString: string;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        url: string;
        extension: {
            url: string;
            valueString: string;
        }[];
    }, {
        url: string;
        extension: {
            url: string;
            valueString: string;
        }[];
    }>]>, "many">>;
    identifier: z.ZodOptional<z.ZodArray<z.ZodObject<{
        system: z.ZodOptional<z.ZodString>;
        value: z.ZodOptional<z.ZodString>;
        use: z.ZodOptional<z.ZodEnum<["usual", "official", "secondary", "temp", "old"]>>;
        period: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodArray<z.ZodObject<{
            start: z.ZodEffects<z.ZodDate, string, Date>;
            end: z.ZodOptional<z.ZodEffects<z.ZodDate, string, Date>>;
        }, "strip", z.ZodTypeAny, {
            start: string;
            end?: string | undefined;
        }, {
            start: Date;
            end?: Date | undefined;
        }>, "many">>, z.ZodObject<{
            start: z.ZodEffects<z.ZodDate, string, Date>;
            end: z.ZodOptional<z.ZodEffects<z.ZodDate, string, Date>>;
        }, "strip", z.ZodTypeAny, {
            start: string;
            end?: string | undefined;
        }, {
            start: Date;
            end?: Date | undefined;
        }>]>>;
        type: z.ZodOptional<z.ZodObject<{
            coding: z.ZodArray<z.ZodObject<{
                code: z.ZodString;
                display: z.ZodOptional<z.ZodString>;
                system: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }, {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }>, "many">;
        }, "strip", z.ZodTypeAny, {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        }, {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        }>>;
        assigner: z.ZodOptional<z.ZodObject<{
            display: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            display: string;
        }, {
            display: string;
        }>>;
    }, "strip", z.ZodTypeAny, {
        value?: string | undefined;
        type?: {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        } | undefined;
        system?: string | undefined;
        period?: {
            start: string;
            end?: string | undefined;
        } | {
            start: string;
            end?: string | undefined;
        }[] | undefined;
        use?: "usual" | "official" | "secondary" | "temp" | "old" | undefined;
        assigner?: {
            display: string;
        } | undefined;
    }, {
        value?: string | undefined;
        type?: {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        } | undefined;
        system?: string | undefined;
        period?: {
            start: Date;
            end?: Date | undefined;
        } | {
            start: Date;
            end?: Date | undefined;
        }[] | undefined;
        use?: "usual" | "official" | "secondary" | "temp" | "old" | undefined;
        assigner?: {
            display: string;
        } | undefined;
    }>, "many">>;
    active: z.ZodOptional<z.ZodBoolean>;
    name: z.ZodArray<z.ZodObject<{
        use: z.ZodString;
        family: z.ZodOptional<z.ZodString>;
        given: z.ZodArray<z.ZodString, "many">;
        prefix: z.ZodOptional<z.ZodString>;
        suffix: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        use: string;
        given: string[];
        family?: string | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    }, {
        use: string;
        given: string[];
        family?: string | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    }>, "many">;
    telecom: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        extension: z.ZodOptional<z.ZodArray<z.ZodObject<{
            url: z.ZodString;
            valueBoolean: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            url: string;
            valueBoolean: boolean;
        }, {
            url: string;
            valueBoolean: boolean;
        }>, "many">>;
        system: z.ZodString;
        value: z.ZodString;
        use: z.ZodOptional<z.ZodString>;
        rank: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        value: string;
        system: string;
        id?: string | undefined;
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        use?: string | undefined;
        rank?: number | undefined;
    }, {
        value: string;
        system: string;
        id?: string | undefined;
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        use?: string | undefined;
        rank?: number | undefined;
    }>, "many">>;
    gender: z.ZodOptional<z.ZodEnum<["male", "female", "other", "unknown"]>>;
    birthDate: z.ZodUnion<[z.ZodString, z.ZodString, z.ZodString]>;
    contact: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodObject<{
            text: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            text: string;
        }, {
            text: string;
        }>;
        relationship: z.ZodOptional<z.ZodArray<z.ZodObject<{
            text: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            text: string;
        }, {
            text: string;
        }>, "many">>;
        telecom: z.ZodOptional<z.ZodArray<z.ZodObject<{
            system: z.ZodString;
            value: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            system: string;
        }, {
            value: string;
            system: string;
        }>, "many">>;
        extension: z.ZodOptional<z.ZodArray<z.ZodObject<{
            url: z.ZodString;
            valueBoolean: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            url: string;
            valueBoolean: boolean;
        }, {
            url: string;
            valueBoolean: boolean;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        name: {
            text: string;
        };
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        relationship?: {
            text: string;
        }[] | undefined;
        telecom?: {
            value: string;
            system: string;
        }[] | undefined;
    }, {
        name: {
            text: string;
        };
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        relationship?: {
            text: string;
        }[] | undefined;
        telecom?: {
            value: string;
            system: string;
        }[] | undefined;
    }>, "many">>;
    address: z.ZodOptional<z.ZodArray<z.ZodObject<{
        use: z.ZodEnum<["home", "work", "temp", "old"]>;
        type: z.ZodEnum<["both", "physical", "postal"]>;
        line: z.ZodArray<z.ZodString, "many">;
        text: z.ZodOptional<z.ZodString>;
        city: z.ZodString;
        state: z.ZodString;
        postalCode: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "both" | "physical" | "postal";
        city: string;
        state: string;
        use: "temp" | "old" | "home" | "work";
        line: string[];
        postalCode: string;
        text?: string | undefined;
    }, {
        type: "both" | "physical" | "postal";
        city: string;
        state: string;
        use: "temp" | "old" | "home" | "work";
        line: string[];
        postalCode: string;
        text?: string | undefined;
    }>, "many">>;
    deceased: z.ZodOptional<z.ZodBoolean>;
    photo: z.ZodOptional<z.ZodArray<z.ZodObject<{
        data: z.ZodOptional<z.ZodString>;
        url: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        data?: string | undefined;
        url?: string | undefined;
    }, {
        data?: string | undefined;
        url?: string | undefined;
    }>, "many">>;
}, {
    id: z.ZodString;
}>, "strip", z.ZodTypeAny, {
    id: string;
    birthDate: string;
    name: {
        use: string;
        given: string[];
        family?: string | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    }[];
    resourceType: "Patient";
    active?: boolean | undefined;
    address?: {
        type: "both" | "physical" | "postal";
        city: string;
        state: string;
        use: "temp" | "old" | "home" | "work";
        line: string[];
        postalCode: string;
        text?: string | undefined;
    }[] | undefined;
    identifier?: {
        value?: string | undefined;
        type?: {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        } | undefined;
        system?: string | undefined;
        period?: {
            start: string;
            end?: string | undefined;
        } | {
            start: string;
            end?: string | undefined;
        }[] | undefined;
        use?: "usual" | "official" | "secondary" | "temp" | "old" | undefined;
        assigner?: {
            display: string;
        } | undefined;
    }[] | undefined;
    extension?: ({
        url: string;
        valueCode: "M" | "F" | "O" | "UNK";
    } | {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        valueCode: string;
    } | {
        url: string;
        valueString: string;
    } | {
        url: string;
        valueString: string;
    } | {
        url: string;
        extension: {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        extension: {
            url: string;
            valueString: string;
        }[];
    })[] | undefined;
    telecom?: {
        value: string;
        system: string;
        id?: string | undefined;
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        use?: string | undefined;
        rank?: number | undefined;
    }[] | undefined;
    gender?: "unknown" | "male" | "female" | "other" | undefined;
    contact?: {
        name: {
            text: string;
        };
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        relationship?: {
            text: string;
        }[] | undefined;
        telecom?: {
            value: string;
            system: string;
        }[] | undefined;
    }[] | undefined;
    deceased?: boolean | undefined;
    photo?: {
        data?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
}, {
    id: string;
    birthDate: string;
    name: {
        use: string;
        given: string[];
        family?: string | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    }[];
    resourceType: "Patient";
    active?: boolean | undefined;
    address?: {
        type: "both" | "physical" | "postal";
        city: string;
        state: string;
        use: "temp" | "old" | "home" | "work";
        line: string[];
        postalCode: string;
        text?: string | undefined;
    }[] | undefined;
    identifier?: {
        value?: string | undefined;
        type?: {
            coding: {
                code: string;
                system?: string | undefined;
                display?: string | undefined;
            }[];
        } | undefined;
        system?: string | undefined;
        period?: {
            start: Date;
            end?: Date | undefined;
        } | {
            start: Date;
            end?: Date | undefined;
        }[] | undefined;
        use?: "usual" | "official" | "secondary" | "temp" | "old" | undefined;
        assigner?: {
            display: string;
        } | undefined;
    }[] | undefined;
    extension?: ({
        url: string;
        valueCode: "M" | "F" | "O" | "UNK";
    } | {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        extension: {
            valueCoding: {
                code: string;
                system: string;
            };
            url?: string | undefined;
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        valueCode: string;
    } | {
        url: string;
        valueString: string;
    } | {
        url: string;
        valueString: string;
    } | {
        url: string;
        extension: {
            url: string;
            valueIdentifier: {
                value: string;
                system: string;
            };
            valueString?: string | undefined;
        }[];
    } | {
        url: string;
        extension: {
            url: string;
            valueString: string;
        }[];
    })[] | undefined;
    telecom?: {
        value: string;
        system: string;
        id?: string | undefined;
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        use?: string | undefined;
        rank?: number | undefined;
    }[] | undefined;
    gender?: "unknown" | "male" | "female" | "other" | undefined;
    contact?: {
        name: {
            text: string;
        };
        extension?: {
            url: string;
            valueBoolean: boolean;
        }[] | undefined;
        relationship?: {
            text: string;
        }[] | undefined;
        telecom?: {
            value: string;
            system: string;
        }[] | undefined;
    }[] | undefined;
    deceased?: boolean | undefined;
    photo?: {
        data?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
}>;
export type Patient = z.infer<typeof patientSchema>;
export type PatientWithId = z.infer<typeof patientWithIdSchema>;
