import { z } from 'zod';
import { PlanBeneficiaryInput } from '../../../../protection-plan';
export declare const PlanBeneficiaryInputSchema: z.ZodDiscriminatedUnion<"storage", [z.ZodObject<{
    isMergeAuthority: z.ZodBoolean;
    isOwner: z.ZodOptional<z.ZodBoolean>;
} & {
    storage: z.ZodLiteral<"SAFEKEY_PRO">;
    details: z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        code: z.ZodOptional<z.ZodString>;
        firstName: z.ZodString;
        lastName: z.ZodString;
    } & {
        email: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    }, {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    storage: "SAFEKEY_PRO";
    isMergeAuthority: boolean;
    details: {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    };
    isOwner?: boolean | undefined;
}, {
    storage: "SAFEKEY_PRO";
    isMergeAuthority: boolean;
    details: {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    };
    isOwner?: boolean | undefined;
}>, z.ZodObject<{
    isMergeAuthority: z.ZodBoolean;
    isOwner: z.ZodOptional<z.ZodBoolean>;
} & {
    storage: z.ZodLiteral<"SAFEKEY_MOBILE">;
    details: z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        code: z.ZodOptional<z.ZodString>;
        firstName: z.ZodString;
        lastName: z.ZodString;
    } & {
        email: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    }, {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    storage: "SAFEKEY_MOBILE";
    isMergeAuthority: boolean;
    details: {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    };
    isOwner?: boolean | undefined;
}, {
    storage: "SAFEKEY_MOBILE";
    isMergeAuthority: boolean;
    details: {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    };
    isOwner?: boolean | undefined;
}>]>;
export declare const PlanBeneficiaryArraySchema: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUnion<"storage", [z.ZodObject<{
    isMergeAuthority: z.ZodBoolean;
    isOwner: z.ZodOptional<z.ZodBoolean>;
} & {
    storage: z.ZodLiteral<"SAFEKEY_PRO">;
    details: z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        code: z.ZodOptional<z.ZodString>;
        firstName: z.ZodString;
        lastName: z.ZodString;
    } & {
        email: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    }, {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    storage: "SAFEKEY_PRO";
    isMergeAuthority: boolean;
    details: {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    };
    isOwner?: boolean | undefined;
}, {
    storage: "SAFEKEY_PRO";
    isMergeAuthority: boolean;
    details: {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    };
    isOwner?: boolean | undefined;
}>, z.ZodObject<{
    isMergeAuthority: z.ZodBoolean;
    isOwner: z.ZodOptional<z.ZodBoolean>;
} & {
    storage: z.ZodLiteral<"SAFEKEY_MOBILE">;
    details: z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        code: z.ZodOptional<z.ZodString>;
        firstName: z.ZodString;
        lastName: z.ZodString;
    } & {
        email: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    }, {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    storage: "SAFEKEY_MOBILE";
    isMergeAuthority: boolean;
    details: {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    };
    isOwner?: boolean | undefined;
}, {
    storage: "SAFEKEY_MOBILE";
    isMergeAuthority: boolean;
    details: {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    };
    isOwner?: boolean | undefined;
}>]>, "many">, ({
    storage: "SAFEKEY_PRO";
    isMergeAuthority: boolean;
    details: {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    };
    isOwner?: boolean | undefined;
} | {
    storage: "SAFEKEY_MOBILE";
    isMergeAuthority: boolean;
    details: {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    };
    isOwner?: boolean | undefined;
})[], ({
    storage: "SAFEKEY_PRO";
    isMergeAuthority: boolean;
    details: {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    };
    isOwner?: boolean | undefined;
} | {
    storage: "SAFEKEY_MOBILE";
    isMergeAuthority: boolean;
    details: {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    };
    isOwner?: boolean | undefined;
})[]>, ({
    storage: "SAFEKEY_PRO";
    isMergeAuthority: boolean;
    details: {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    };
    isOwner?: boolean | undefined;
} | {
    storage: "SAFEKEY_MOBILE";
    isMergeAuthority: boolean;
    details: {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    };
    isOwner?: boolean | undefined;
})[], ({
    storage: "SAFEKEY_PRO";
    isMergeAuthority: boolean;
    details: {
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
        email?: string | undefined;
    };
    isOwner?: boolean | undefined;
} | {
    storage: "SAFEKEY_MOBILE";
    isMergeAuthority: boolean;
    details: {
        email: string;
        firstName: string;
        lastName: string;
        id?: string | undefined;
        code?: string | undefined;
    };
    isOwner?: boolean | undefined;
})[]>;
export declare class PlanBeneficiaryInputValidator {
    static validateOne(input: unknown): PlanBeneficiaryInput;
    static validate(input: unknown): PlanBeneficiaryInput[];
}
