/**
 * eResidency and eCitizenship Verifiable Credential Schemas
 * Based on W3C Verifiable Credentials Data Model
 * Version 0.9 - MVP Schema Registry
 */
import { z } from 'zod';
/**
 * Levels of Assurance (LOA)
 */
export declare enum LevelOfAssurance {
    LOA1 = "LOA1",// Basic identity verification
    LOA2 = "LOA2",// Enhanced identity verification with document check
    LOA3 = "LOA3"
}
/**
 * Membership Classes
 */
export declare enum MembershipClass {
    RESIDENT = "Resident",
    CITIZEN = "Citizen",
    HONORARY = "Honorary",
    SERVICE = "Service"
}
/**
 * Evidence Types
 */
export declare enum EvidenceType {
    DocumentVerification = "DocumentVerification",
    LivenessCheck = "LivenessCheck",
    SanctionsScreen = "SanctionsScreen",
    VideoInterview = "VideoInterview",
    Sponsorship = "Sponsorship",
    ResidencyTenure = "ResidencyTenure",
    BackgroundAttestation = "BackgroundAttestation"
}
/**
 * Evidence Result
 */
export declare enum EvidenceResult {
    pass = "pass",
    fail = "fail",
    manual = "manual"
}
/**
 * eResident Credential Subject (v0.9)
 * Matches DSB Schema Registry specification
 */
export declare const eResidentCredentialSubjectSchema: z.ZodObject<{
    id: z.ZodString;
    legalName: z.ZodString;
    publicHandle: z.ZodOptional<z.ZodString>;
    assuranceLevel: z.ZodEnum<[LevelOfAssurance.LOA1, LevelOfAssurance.LOA2]>;
    residentNumber: z.ZodString;
    issueJurisdiction: z.ZodLiteral<"DSB">;
}, "strip", z.ZodTypeAny, {
    id: string;
    legalName: string;
    assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
    residentNumber: string;
    issueJurisdiction: "DSB";
    publicHandle?: string | undefined;
}, {
    id: string;
    legalName: string;
    assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
    residentNumber: string;
    issueJurisdiction: "DSB";
    publicHandle?: string | undefined;
}>;
export type eResidentCredentialSubject = z.infer<typeof eResidentCredentialSubjectSchema>;
/**
 * eCitizen Credential Subject (v0.9)
 * Matches DSB Schema Registry specification
 */
export declare const eCitizenCredentialSubjectSchema: z.ZodObject<{
    id: z.ZodString;
    citizenNumber: z.ZodString;
    assuranceLevel: z.ZodEnum<[LevelOfAssurance.LOA2, LevelOfAssurance.LOA3]>;
    oathDate: z.ZodString;
    governanceRights: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    sponsoringMember: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    id: string;
    assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
    citizenNumber: string;
    oathDate: string;
    governanceRights?: string[] | undefined;
    sponsoringMember?: string | undefined;
}, {
    id: string;
    assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
    citizenNumber: string;
    oathDate: string;
    governanceRights?: string[] | undefined;
    sponsoringMember?: string | undefined;
}>;
export type eCitizenCredentialSubject = z.infer<typeof eCitizenCredentialSubjectSchema>;
/**
 * Evidence Schema
 */
export declare const evidenceSchema: z.ZodObject<{
    type: z.ZodNativeEnum<typeof EvidenceType>;
    verifier: z.ZodOptional<z.ZodString>;
    txn: z.ZodOptional<z.ZodString>;
    result: z.ZodNativeEnum<typeof EvidenceResult>;
    timestamp: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    result: EvidenceResult;
    type: EvidenceType;
    verifier?: string | undefined;
    txn?: string | undefined;
    timestamp?: string | undefined;
}, {
    result: EvidenceResult;
    type: EvidenceType;
    verifier?: string | undefined;
    txn?: string | undefined;
    timestamp?: string | undefined;
}>;
export type Evidence = z.infer<typeof evidenceSchema>;
/**
 * Address Attestation Credential Subject
 */
export declare const addressAttestationCredentialSubjectSchema: z.ZodObject<{
    id: z.ZodString;
    address: z.ZodObject<{
        street: z.ZodString;
        city: z.ZodString;
        region: z.ZodOptional<z.ZodString>;
        postalCode: z.ZodString;
        country: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        street: string;
        city: string;
        postalCode: string;
        country: string;
        region?: string | undefined;
    }, {
        street: string;
        city: string;
        postalCode: string;
        country: string;
        region?: string | undefined;
    }>;
    attestedSince: z.ZodString;
    attestedUntil: z.ZodOptional<z.ZodString>;
    attestedBy: z.ZodString;
}, "strip", z.ZodTypeAny, {
    address: {
        street: string;
        city: string;
        postalCode: string;
        country: string;
        region?: string | undefined;
    };
    id: string;
    attestedSince: string;
    attestedBy: string;
    attestedUntil?: string | undefined;
}, {
    address: {
        street: string;
        city: string;
        postalCode: string;
        country: string;
        region?: string | undefined;
    };
    id: string;
    attestedSince: string;
    attestedBy: string;
    attestedUntil?: string | undefined;
}>;
export type AddressAttestationCredentialSubject = z.infer<typeof addressAttestationCredentialSubjectSchema>;
/**
 * Good Standing Credential Subject
 */
export declare const goodStandingCredentialSubjectSchema: z.ZodObject<{
    id: z.ZodString;
    membershipClass: z.ZodNativeEnum<typeof MembershipClass>;
    goodStanding: z.ZodBoolean;
    verifiedSince: z.ZodString;
    verifiedUntil: z.ZodOptional<z.ZodString>;
    complianceChecks: z.ZodOptional<z.ZodArray<z.ZodObject<{
        check: z.ZodString;
        passed: z.ZodBoolean;
        checkedAt: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        check: string;
        passed: boolean;
        checkedAt: string;
    }, {
        check: string;
        passed: boolean;
        checkedAt: string;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    id: string;
    membershipClass: MembershipClass;
    goodStanding: boolean;
    verifiedSince: string;
    verifiedUntil?: string | undefined;
    complianceChecks?: {
        check: string;
        passed: boolean;
        checkedAt: string;
    }[] | undefined;
}, {
    id: string;
    membershipClass: MembershipClass;
    goodStanding: boolean;
    verifiedSince: string;
    verifiedUntil?: string | undefined;
    complianceChecks?: {
        check: string;
        passed: boolean;
        checkedAt: string;
    }[] | undefined;
}>;
export type GoodStandingCredentialSubject = z.infer<typeof goodStandingCredentialSubjectSchema>;
/**
 * Professional Order Credential Subject
 */
export declare const professionalOrderCredentialSubjectSchema: z.ZodObject<{
    id: z.ZodString;
    order: z.ZodString;
    role: z.ZodString;
    membershipSince: z.ZodString;
    membershipUntil: z.ZodOptional<z.ZodString>;
    credentials: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    status: z.ZodEnum<["active", "suspended", "revoked", "expired"]>;
}, "strip", z.ZodTypeAny, {
    status: "revoked" | "active" | "suspended" | "expired";
    id: string;
    order: string;
    role: string;
    membershipSince: string;
    credentials?: string[] | undefined;
    membershipUntil?: string | undefined;
}, {
    status: "revoked" | "active" | "suspended" | "expired";
    id: string;
    order: string;
    role: string;
    membershipSince: string;
    credentials?: string[] | undefined;
    membershipUntil?: string | undefined;
}>;
export type ProfessionalOrderCredentialSubject = z.infer<typeof professionalOrderCredentialSubjectSchema>;
/**
 * eResident Credential Schema (v0.9)
 * Matches DSB Schema Registry specification
 */
export declare const eResidentCredentialSchema: z.ZodObject<{
    '@context': z.ZodArray<z.ZodString, "many">;
    type: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
    issuer: z.ZodString;
    issuanceDate: z.ZodString;
    expirationDate: z.ZodOptional<z.ZodString>;
    credentialSubject: z.ZodObject<{
        id: z.ZodString;
        legalName: z.ZodString;
        publicHandle: z.ZodOptional<z.ZodString>;
        assuranceLevel: z.ZodEnum<[LevelOfAssurance.LOA1, LevelOfAssurance.LOA2]>;
        residentNumber: z.ZodString;
        issueJurisdiction: z.ZodLiteral<"DSB">;
    }, "strip", z.ZodTypeAny, {
        id: string;
        legalName: string;
        assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
        residentNumber: string;
        issueJurisdiction: "DSB";
        publicHandle?: string | undefined;
    }, {
        id: string;
        legalName: string;
        assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
        residentNumber: string;
        issueJurisdiction: "DSB";
        publicHandle?: string | undefined;
    }>;
    credentialStatus: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        type: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        id: string;
        type: string;
    }, {
        id: string;
        type: string;
    }>>;
    evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodNativeEnum<typeof EvidenceType>;
        verifier: z.ZodOptional<z.ZodString>;
        txn: z.ZodOptional<z.ZodString>;
        result: z.ZodNativeEnum<typeof EvidenceResult>;
        timestamp: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        result: EvidenceResult;
        type: EvidenceType;
        verifier?: string | undefined;
        txn?: string | undefined;
        timestamp?: string | undefined;
    }, {
        result: EvidenceResult;
        type: EvidenceType;
        verifier?: string | undefined;
        txn?: string | undefined;
        timestamp?: string | undefined;
    }>, "many">>;
    proof: z.ZodObject<{
        type: z.ZodString;
        created: z.ZodString;
        proofPurpose: z.ZodString;
        verificationMethod: z.ZodString;
        jws: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
    }, {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    type: string[];
    proof: {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
    };
    issuer: string;
    credentialSubject: {
        id: string;
        legalName: string;
        assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
        residentNumber: string;
        issueJurisdiction: "DSB";
        publicHandle?: string | undefined;
    };
    issuanceDate: string;
    '@context': string[];
    expirationDate?: string | undefined;
    credentialStatus?: {
        id: string;
        type: string;
    } | undefined;
    evidence?: {
        result: EvidenceResult;
        type: EvidenceType;
        verifier?: string | undefined;
        txn?: string | undefined;
        timestamp?: string | undefined;
    }[] | undefined;
}, {
    type: string[];
    proof: {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
    };
    issuer: string;
    credentialSubject: {
        id: string;
        legalName: string;
        assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
        residentNumber: string;
        issueJurisdiction: "DSB";
        publicHandle?: string | undefined;
    };
    issuanceDate: string;
    '@context': string[];
    expirationDate?: string | undefined;
    credentialStatus?: {
        id: string;
        type: string;
    } | undefined;
    evidence?: {
        result: EvidenceResult;
        type: EvidenceType;
        verifier?: string | undefined;
        txn?: string | undefined;
        timestamp?: string | undefined;
    }[] | undefined;
}>;
export type eResidentCredential = z.infer<typeof eResidentCredentialSchema>;
/**
 * eCitizen Credential Schema (v0.9)
 * Matches DSB Schema Registry specification
 */
export declare const eCitizenCredentialSchema: z.ZodObject<{
    '@context': z.ZodArray<z.ZodString, "many">;
    type: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
    issuer: z.ZodString;
    issuanceDate: z.ZodString;
    expirationDate: z.ZodOptional<z.ZodString>;
    credentialSubject: z.ZodObject<{
        id: z.ZodString;
        citizenNumber: z.ZodString;
        assuranceLevel: z.ZodEnum<[LevelOfAssurance.LOA2, LevelOfAssurance.LOA3]>;
        oathDate: z.ZodString;
        governanceRights: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        sponsoringMember: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
        citizenNumber: string;
        oathDate: string;
        governanceRights?: string[] | undefined;
        sponsoringMember?: string | undefined;
    }, {
        id: string;
        assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
        citizenNumber: string;
        oathDate: string;
        governanceRights?: string[] | undefined;
        sponsoringMember?: string | undefined;
    }>;
    credentialStatus: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        type: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        id: string;
        type: string;
    }, {
        id: string;
        type: string;
    }>>;
    evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodNativeEnum<typeof EvidenceType>;
        verifier: z.ZodOptional<z.ZodString>;
        txn: z.ZodOptional<z.ZodString>;
        result: z.ZodNativeEnum<typeof EvidenceResult>;
        timestamp: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        result: EvidenceResult;
        type: EvidenceType;
        verifier?: string | undefined;
        txn?: string | undefined;
        timestamp?: string | undefined;
    }, {
        result: EvidenceResult;
        type: EvidenceType;
        verifier?: string | undefined;
        txn?: string | undefined;
        timestamp?: string | undefined;
    }>, "many">>;
    proof: z.ZodObject<{
        type: z.ZodString;
        created: z.ZodString;
        proofPurpose: z.ZodString;
        verificationMethod: z.ZodString;
        jws: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
    }, {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    type: string[];
    proof: {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
    };
    issuer: string;
    credentialSubject: {
        id: string;
        assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
        citizenNumber: string;
        oathDate: string;
        governanceRights?: string[] | undefined;
        sponsoringMember?: string | undefined;
    };
    issuanceDate: string;
    '@context': string[];
    expirationDate?: string | undefined;
    credentialStatus?: {
        id: string;
        type: string;
    } | undefined;
    evidence?: {
        result: EvidenceResult;
        type: EvidenceType;
        verifier?: string | undefined;
        txn?: string | undefined;
        timestamp?: string | undefined;
    }[] | undefined;
}, {
    type: string[];
    proof: {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
    };
    issuer: string;
    credentialSubject: {
        id: string;
        assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
        citizenNumber: string;
        oathDate: string;
        governanceRights?: string[] | undefined;
        sponsoringMember?: string | undefined;
    };
    issuanceDate: string;
    '@context': string[];
    expirationDate?: string | undefined;
    credentialStatus?: {
        id: string;
        type: string;
    } | undefined;
    evidence?: {
        result: EvidenceResult;
        type: EvidenceType;
        verifier?: string | undefined;
        txn?: string | undefined;
        timestamp?: string | undefined;
    }[] | undefined;
}>;
export type eCitizenCredential = z.infer<typeof eCitizenCredentialSchema>;
/**
 * Verifiable Presentation Schema
 */
export declare const verifiablePresentationSchema: z.ZodObject<{
    '@context': z.ZodArray<z.ZodString, "many">;
    type: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
    verifiableCredential: z.ZodArray<z.ZodUnion<[z.ZodObject<{
        '@context': z.ZodArray<z.ZodString, "many">;
        type: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
        issuer: z.ZodString;
        issuanceDate: z.ZodString;
        expirationDate: z.ZodOptional<z.ZodString>;
        credentialSubject: z.ZodObject<{
            id: z.ZodString;
            legalName: z.ZodString;
            publicHandle: z.ZodOptional<z.ZodString>;
            assuranceLevel: z.ZodEnum<[LevelOfAssurance.LOA1, LevelOfAssurance.LOA2]>;
            residentNumber: z.ZodString;
            issueJurisdiction: z.ZodLiteral<"DSB">;
        }, "strip", z.ZodTypeAny, {
            id: string;
            legalName: string;
            assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
            residentNumber: string;
            issueJurisdiction: "DSB";
            publicHandle?: string | undefined;
        }, {
            id: string;
            legalName: string;
            assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
            residentNumber: string;
            issueJurisdiction: "DSB";
            publicHandle?: string | undefined;
        }>;
        credentialStatus: z.ZodOptional<z.ZodObject<{
            id: z.ZodString;
            type: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            type: string;
        }, {
            id: string;
            type: string;
        }>>;
        evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
            type: z.ZodNativeEnum<typeof EvidenceType>;
            verifier: z.ZodOptional<z.ZodString>;
            txn: z.ZodOptional<z.ZodString>;
            result: z.ZodNativeEnum<typeof EvidenceResult>;
            timestamp: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }, {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }>, "many">>;
        proof: z.ZodObject<{
            type: z.ZodString;
            created: z.ZodString;
            proofPurpose: z.ZodString;
            verificationMethod: z.ZodString;
            jws: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        }, {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        type: string[];
        proof: {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        };
        issuer: string;
        credentialSubject: {
            id: string;
            legalName: string;
            assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
            residentNumber: string;
            issueJurisdiction: "DSB";
            publicHandle?: string | undefined;
        };
        issuanceDate: string;
        '@context': string[];
        expirationDate?: string | undefined;
        credentialStatus?: {
            id: string;
            type: string;
        } | undefined;
        evidence?: {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }[] | undefined;
    }, {
        type: string[];
        proof: {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        };
        issuer: string;
        credentialSubject: {
            id: string;
            legalName: string;
            assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
            residentNumber: string;
            issueJurisdiction: "DSB";
            publicHandle?: string | undefined;
        };
        issuanceDate: string;
        '@context': string[];
        expirationDate?: string | undefined;
        credentialStatus?: {
            id: string;
            type: string;
        } | undefined;
        evidence?: {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }[] | undefined;
    }>, z.ZodObject<{
        '@context': z.ZodArray<z.ZodString, "many">;
        type: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
        issuer: z.ZodString;
        issuanceDate: z.ZodString;
        expirationDate: z.ZodOptional<z.ZodString>;
        credentialSubject: z.ZodObject<{
            id: z.ZodString;
            citizenNumber: z.ZodString;
            assuranceLevel: z.ZodEnum<[LevelOfAssurance.LOA2, LevelOfAssurance.LOA3]>;
            oathDate: z.ZodString;
            governanceRights: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            sponsoringMember: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            id: string;
            assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
            citizenNumber: string;
            oathDate: string;
            governanceRights?: string[] | undefined;
            sponsoringMember?: string | undefined;
        }, {
            id: string;
            assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
            citizenNumber: string;
            oathDate: string;
            governanceRights?: string[] | undefined;
            sponsoringMember?: string | undefined;
        }>;
        credentialStatus: z.ZodOptional<z.ZodObject<{
            id: z.ZodString;
            type: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            type: string;
        }, {
            id: string;
            type: string;
        }>>;
        evidence: z.ZodOptional<z.ZodArray<z.ZodObject<{
            type: z.ZodNativeEnum<typeof EvidenceType>;
            verifier: z.ZodOptional<z.ZodString>;
            txn: z.ZodOptional<z.ZodString>;
            result: z.ZodNativeEnum<typeof EvidenceResult>;
            timestamp: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }, {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }>, "many">>;
        proof: z.ZodObject<{
            type: z.ZodString;
            created: z.ZodString;
            proofPurpose: z.ZodString;
            verificationMethod: z.ZodString;
            jws: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        }, {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        type: string[];
        proof: {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        };
        issuer: string;
        credentialSubject: {
            id: string;
            assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
            citizenNumber: string;
            oathDate: string;
            governanceRights?: string[] | undefined;
            sponsoringMember?: string | undefined;
        };
        issuanceDate: string;
        '@context': string[];
        expirationDate?: string | undefined;
        credentialStatus?: {
            id: string;
            type: string;
        } | undefined;
        evidence?: {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }[] | undefined;
    }, {
        type: string[];
        proof: {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        };
        issuer: string;
        credentialSubject: {
            id: string;
            assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
            citizenNumber: string;
            oathDate: string;
            governanceRights?: string[] | undefined;
            sponsoringMember?: string | undefined;
        };
        issuanceDate: string;
        '@context': string[];
        expirationDate?: string | undefined;
        credentialStatus?: {
            id: string;
            type: string;
        } | undefined;
        evidence?: {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }[] | undefined;
    }>]>, "many">;
    holder: z.ZodString;
    proof: z.ZodObject<{
        type: z.ZodString;
        created: z.ZodString;
        challenge: z.ZodOptional<z.ZodString>;
        proofPurpose: z.ZodString;
        verificationMethod: z.ZodString;
        jws: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
        challenge?: string | undefined;
    }, {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
        challenge?: string | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    type: string[];
    proof: {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
        challenge?: string | undefined;
    };
    '@context': string[];
    verifiableCredential: ({
        type: string[];
        proof: {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        };
        issuer: string;
        credentialSubject: {
            id: string;
            legalName: string;
            assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
            residentNumber: string;
            issueJurisdiction: "DSB";
            publicHandle?: string | undefined;
        };
        issuanceDate: string;
        '@context': string[];
        expirationDate?: string | undefined;
        credentialStatus?: {
            id: string;
            type: string;
        } | undefined;
        evidence?: {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }[] | undefined;
    } | {
        type: string[];
        proof: {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        };
        issuer: string;
        credentialSubject: {
            id: string;
            assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
            citizenNumber: string;
            oathDate: string;
            governanceRights?: string[] | undefined;
            sponsoringMember?: string | undefined;
        };
        issuanceDate: string;
        '@context': string[];
        expirationDate?: string | undefined;
        credentialStatus?: {
            id: string;
            type: string;
        } | undefined;
        evidence?: {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }[] | undefined;
    })[];
    holder: string;
}, {
    type: string[];
    proof: {
        type: string;
        created: string;
        proofPurpose: string;
        verificationMethod: string;
        jws?: string | undefined;
        challenge?: string | undefined;
    };
    '@context': string[];
    verifiableCredential: ({
        type: string[];
        proof: {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        };
        issuer: string;
        credentialSubject: {
            id: string;
            legalName: string;
            assuranceLevel: LevelOfAssurance.LOA1 | LevelOfAssurance.LOA2;
            residentNumber: string;
            issueJurisdiction: "DSB";
            publicHandle?: string | undefined;
        };
        issuanceDate: string;
        '@context': string[];
        expirationDate?: string | undefined;
        credentialStatus?: {
            id: string;
            type: string;
        } | undefined;
        evidence?: {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }[] | undefined;
    } | {
        type: string[];
        proof: {
            type: string;
            created: string;
            proofPurpose: string;
            verificationMethod: string;
            jws?: string | undefined;
        };
        issuer: string;
        credentialSubject: {
            id: string;
            assuranceLevel: LevelOfAssurance.LOA2 | LevelOfAssurance.LOA3;
            citizenNumber: string;
            oathDate: string;
            governanceRights?: string[] | undefined;
            sponsoringMember?: string | undefined;
        };
        issuanceDate: string;
        '@context': string[];
        expirationDate?: string | undefined;
        credentialStatus?: {
            id: string;
            type: string;
        } | undefined;
        evidence?: {
            result: EvidenceResult;
            type: EvidenceType;
            verifier?: string | undefined;
            txn?: string | undefined;
            timestamp?: string | undefined;
        }[] | undefined;
    })[];
    holder: string;
}>;
export type VerifiablePresentation = z.infer<typeof verifiablePresentationSchema>;
/**
 * Application Status
 */
export declare enum ApplicationStatus {
    DRAFT = "draft",
    SUBMITTED = "submitted",
    UNDER_REVIEW = "under_review",
    KYC_PENDING = "kyc_pending",
    APPROVED = "approved",
    REJECTED = "rejected",
    APPEALED = "appealed",
    CANCELLED = "cancelled"
}
/**
 * eResidency Application Schema
 */
export declare const eResidencyApplicationSchema: z.ZodObject<{
    id: z.ZodString;
    applicantDid: z.ZodOptional<z.ZodString>;
    email: z.ZodString;
    givenName: z.ZodString;
    familyName: z.ZodString;
    dateOfBirth: z.ZodOptional<z.ZodString>;
    nationality: z.ZodOptional<z.ZodString>;
    phone: z.ZodOptional<z.ZodString>;
    address: z.ZodOptional<z.ZodObject<{
        street: z.ZodOptional<z.ZodString>;
        city: z.ZodOptional<z.ZodString>;
        region: z.ZodOptional<z.ZodString>;
        postalCode: z.ZodOptional<z.ZodString>;
        country: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        region?: string | undefined;
        street?: string | undefined;
        city?: string | undefined;
        postalCode?: string | undefined;
        country?: string | undefined;
    }, {
        region?: string | undefined;
        street?: string | undefined;
        city?: string | undefined;
        postalCode?: string | undefined;
        country?: string | undefined;
    }>>;
    deviceFingerprint: z.ZodOptional<z.ZodString>;
    identityDocument: z.ZodOptional<z.ZodObject<{
        type: z.ZodEnum<["passport", "national_id", "drivers_license"]>;
        number: z.ZodString;
        issuingCountry: z.ZodString;
        expiryDate: z.ZodOptional<z.ZodString>;
        documentHash: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        number: string;
        type: "passport" | "national_id" | "drivers_license";
        issuingCountry: string;
        expiryDate?: string | undefined;
        documentHash?: string | undefined;
    }, {
        number: string;
        type: "passport" | "national_id" | "drivers_license";
        issuingCountry: string;
        expiryDate?: string | undefined;
        documentHash?: string | undefined;
    }>>;
    selfieLiveness: z.ZodOptional<z.ZodObject<{
        imageHash: z.ZodString;
        livenessScore: z.ZodNumber;
        verifiedAt: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        imageHash: string;
        livenessScore: number;
        verifiedAt: string;
    }, {
        imageHash: string;
        livenessScore: number;
        verifiedAt: string;
    }>>;
    status: z.ZodNativeEnum<typeof ApplicationStatus>;
    submittedAt: z.ZodOptional<z.ZodString>;
    reviewedAt: z.ZodOptional<z.ZodString>;
    reviewedBy: z.ZodOptional<z.ZodString>;
    rejectionReason: z.ZodOptional<z.ZodString>;
    kycStatus: z.ZodOptional<z.ZodEnum<["pending", "passed", "failed", "requires_edd"]>>;
    sanctionsStatus: z.ZodOptional<z.ZodEnum<["pending", "clear", "flag"]>>;
    pepStatus: z.ZodOptional<z.ZodEnum<["pending", "clear", "flag"]>>;
    riskScore: z.ZodOptional<z.ZodNumber>;
    kycResults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    sanctionsResults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    riskAssessment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    createdAt: z.ZodString;
    updatedAt: z.ZodString;
}, "strip", z.ZodTypeAny, {
    status: ApplicationStatus;
    id: string;
    email: string;
    createdAt: string;
    updatedAt: string;
    givenName: string;
    familyName: string;
    address?: {
        region?: string | undefined;
        street?: string | undefined;
        city?: string | undefined;
        postalCode?: string | undefined;
        country?: string | undefined;
    } | undefined;
    applicantDid?: string | undefined;
    dateOfBirth?: string | undefined;
    nationality?: string | undefined;
    phone?: string | undefined;
    deviceFingerprint?: string | undefined;
    identityDocument?: {
        number: string;
        type: "passport" | "national_id" | "drivers_license";
        issuingCountry: string;
        expiryDate?: string | undefined;
        documentHash?: string | undefined;
    } | undefined;
    selfieLiveness?: {
        imageHash: string;
        livenessScore: number;
        verifiedAt: string;
    } | undefined;
    submittedAt?: string | undefined;
    reviewedAt?: string | undefined;
    reviewedBy?: string | undefined;
    rejectionReason?: string | undefined;
    kycStatus?: "failed" | "pending" | "passed" | "requires_edd" | undefined;
    sanctionsStatus?: "pending" | "clear" | "flag" | undefined;
    pepStatus?: "pending" | "clear" | "flag" | undefined;
    riskScore?: number | undefined;
    kycResults?: Record<string, unknown> | undefined;
    sanctionsResults?: Record<string, unknown> | undefined;
    riskAssessment?: Record<string, unknown> | undefined;
}, {
    status: ApplicationStatus;
    id: string;
    email: string;
    createdAt: string;
    updatedAt: string;
    givenName: string;
    familyName: string;
    address?: {
        region?: string | undefined;
        street?: string | undefined;
        city?: string | undefined;
        postalCode?: string | undefined;
        country?: string | undefined;
    } | undefined;
    applicantDid?: string | undefined;
    dateOfBirth?: string | undefined;
    nationality?: string | undefined;
    phone?: string | undefined;
    deviceFingerprint?: string | undefined;
    identityDocument?: {
        number: string;
        type: "passport" | "national_id" | "drivers_license";
        issuingCountry: string;
        expiryDate?: string | undefined;
        documentHash?: string | undefined;
    } | undefined;
    selfieLiveness?: {
        imageHash: string;
        livenessScore: number;
        verifiedAt: string;
    } | undefined;
    submittedAt?: string | undefined;
    reviewedAt?: string | undefined;
    reviewedBy?: string | undefined;
    rejectionReason?: string | undefined;
    kycStatus?: "failed" | "pending" | "passed" | "requires_edd" | undefined;
    sanctionsStatus?: "pending" | "clear" | "flag" | undefined;
    pepStatus?: "pending" | "clear" | "flag" | undefined;
    riskScore?: number | undefined;
    kycResults?: Record<string, unknown> | undefined;
    sanctionsResults?: Record<string, unknown> | undefined;
    riskAssessment?: Record<string, unknown> | undefined;
}>;
export type eResidencyApplication = z.infer<typeof eResidencyApplicationSchema>;
/**
 * eCitizenship Application Schema
 */
export declare const eCitizenshipApplicationSchema: z.ZodObject<{
    id: z.ZodString;
    applicantDid: z.ZodString;
    residentDid: z.ZodString;
    residencyTenure: z.ZodNumber;
    sponsorDid: z.ZodOptional<z.ZodString>;
    serviceMerit: z.ZodOptional<z.ZodObject<{
        serviceHours: z.ZodNumber;
        contributions: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        serviceHours: number;
        contributions: string[];
    }, {
        serviceHours: number;
        contributions: string[];
    }>>;
    videoInterview: z.ZodOptional<z.ZodObject<{
        scheduledAt: z.ZodOptional<z.ZodString>;
        completedAt: z.ZodOptional<z.ZodString>;
        recordingHash: z.ZodOptional<z.ZodString>;
        interviewerDid: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        scheduledAt?: string | undefined;
        completedAt?: string | undefined;
        recordingHash?: string | undefined;
        interviewerDid?: string | undefined;
    }, {
        scheduledAt?: string | undefined;
        completedAt?: string | undefined;
        recordingHash?: string | undefined;
        interviewerDid?: string | undefined;
    }>>;
    backgroundAttestations: z.ZodOptional<z.ZodArray<z.ZodObject<{
        attesterDid: z.ZodString;
        attestation: z.ZodString;
        attestedAt: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        attesterDid: string;
        attestation: string;
        attestedAt: string;
    }, {
        attesterDid: string;
        attestation: string;
        attestedAt: string;
    }>, "many">>;
    oathCeremony: z.ZodOptional<z.ZodObject<{
        scheduledAt: z.ZodOptional<z.ZodString>;
        completedAt: z.ZodOptional<z.ZodString>;
        ceremonyHash: z.ZodOptional<z.ZodString>;
        oathVersion: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        scheduledAt?: string | undefined;
        completedAt?: string | undefined;
        ceremonyHash?: string | undefined;
        oathVersion?: string | undefined;
    }, {
        scheduledAt?: string | undefined;
        completedAt?: string | undefined;
        ceremonyHash?: string | undefined;
        oathVersion?: string | undefined;
    }>>;
    status: z.ZodNativeEnum<typeof ApplicationStatus>;
    submittedAt: z.ZodOptional<z.ZodString>;
    reviewedAt: z.ZodOptional<z.ZodString>;
    reviewedBy: z.ZodOptional<z.ZodString>;
    rejectionReason: z.ZodOptional<z.ZodString>;
    createdAt: z.ZodString;
    updatedAt: z.ZodString;
}, "strip", z.ZodTypeAny, {
    status: ApplicationStatus;
    id: string;
    createdAt: string;
    updatedAt: string;
    applicantDid: string;
    residentDid: string;
    residencyTenure: number;
    submittedAt?: string | undefined;
    reviewedAt?: string | undefined;
    reviewedBy?: string | undefined;
    rejectionReason?: string | undefined;
    sponsorDid?: string | undefined;
    serviceMerit?: {
        serviceHours: number;
        contributions: string[];
    } | undefined;
    videoInterview?: {
        scheduledAt?: string | undefined;
        completedAt?: string | undefined;
        recordingHash?: string | undefined;
        interviewerDid?: string | undefined;
    } | undefined;
    backgroundAttestations?: {
        attesterDid: string;
        attestation: string;
        attestedAt: string;
    }[] | undefined;
    oathCeremony?: {
        scheduledAt?: string | undefined;
        completedAt?: string | undefined;
        ceremonyHash?: string | undefined;
        oathVersion?: string | undefined;
    } | undefined;
}, {
    status: ApplicationStatus;
    id: string;
    createdAt: string;
    updatedAt: string;
    applicantDid: string;
    residentDid: string;
    residencyTenure: number;
    submittedAt?: string | undefined;
    reviewedAt?: string | undefined;
    reviewedBy?: string | undefined;
    rejectionReason?: string | undefined;
    sponsorDid?: string | undefined;
    serviceMerit?: {
        serviceHours: number;
        contributions: string[];
    } | undefined;
    videoInterview?: {
        scheduledAt?: string | undefined;
        completedAt?: string | undefined;
        recordingHash?: string | undefined;
        interviewerDid?: string | undefined;
    } | undefined;
    backgroundAttestations?: {
        attesterDid: string;
        attestation: string;
        attestedAt: string;
    }[] | undefined;
    oathCeremony?: {
        scheduledAt?: string | undefined;
        completedAt?: string | undefined;
        ceremonyHash?: string | undefined;
        oathVersion?: string | undefined;
    } | undefined;
}>;
export type eCitizenshipApplication = z.infer<typeof eCitizenshipApplicationSchema>;
//# sourceMappingURL=eresidency.d.ts.map