import { z } from 'zod'; export declare const CredentialV1Schema: z.ZodObject<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { issuanceDate: z.ZodString; expirationDate: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { issuanceDate: z.ZodString; expirationDate: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { issuanceDate: z.ZodString; expirationDate: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>; export declare const CredentialV2Schema: z.ZodObject<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { validFrom: z.ZodOptional; validUntil: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { validFrom: z.ZodOptional; validUntil: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { validFrom: z.ZodOptional; validUntil: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>; export declare const CredentialSchema: z.ZodUnion<[z.ZodObject<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { issuanceDate: z.ZodString; expirationDate: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { issuanceDate: z.ZodString; expirationDate: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { issuanceDate: z.ZodString; expirationDate: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { validFrom: z.ZodOptional; validUntil: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { validFrom: z.ZodOptional; validUntil: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ '@context': z.ZodEffects]>, z.ZodArray]>, "many">]>, ((string | Record | (string | Record)[]) & any[]) | (string | Record | (string | Record)[])[], string | Record | (string | Record)[]>; id: z.ZodOptional; type: z.ZodEffects]>, ((string | string[]) & any[]) | (string | string[])[], string | string[]>; issuer: z.ZodUnion<[z.ZodString, z.ZodObject<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodOptional]>>; name: z.ZodOptional; url: z.ZodOptional; image: z.ZodOptional]>, string | string[], string | string[]>; caption: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; type: z.ZodEffects]>, string | string[], string | string[]>; caption: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>>; }, z.ZodTypeAny, "passthrough">>]>; credentialSubject: z.ZodUnion<[z.ZodRecord, z.ZodArray, "many">]>; proof: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, z.ZodArray; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodString; proofPurpose: z.ZodString; verificationMethod: z.ZodString; created: z.ZodOptional; proofValue: z.ZodOptional; cryptosuite: z.ZodOptional; challenge: z.ZodOptional; jws: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialStatus: z.ZodOptional]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ id: z.ZodString; /** Preserve string vs array — normalizing to array breaks LD signature verification. */ type: z.ZodUnion<[z.ZodString, z.ZodArray]>; statusPurpose: z.ZodString; statusListIndex: z.ZodUnion<[z.ZodString, z.ZodNumber]>; statusListCredential: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; credentialSchema: z.ZodOptional, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, z.ZodArray, z.objectInputType<{ id: z.ZodString; type: z.ZodString; }, z.ZodTypeAny, "passthrough">>, "many">]>>; name: z.ZodOptional; } & { validFrom: z.ZodOptional; validUntil: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>]>; export type VerifiableCredential = z.infer; /** * Parse unknown input into a VerifiableCredential. * Returns the zod result (success or error) — callers decide how to handle failures. */ export declare function parseCredential(input: unknown): z.SafeParseReturnType; //# sourceMappingURL=credential.d.ts.map