/** * Vorion v2 Retention Schema (ERPL) * * Defines retention policies and legal holds per ERPL spec. * WORM compliance, legal holds, cryptographic sealing. */ import { z } from 'zod'; export declare const RetentionPolicySchema: z.ZodObject<{ id: z.ZodString; schemaVersion: z.ZodDefault; version: z.ZodString; name: z.ZodString; description: z.ZodOptional; appliesToClassifications: z.ZodArray, "many">; appliesToSources: z.ZodOptional>; appliesToJurisdictions: z.ZodOptional>; defaultRetentionDays: z.ZodNumber; maxRetentionDays: z.ZodOptional; minRetentionDays: z.ZodOptional; wormEnabled: z.ZodDefault; immutablePeriodDays: z.ZodOptional; deletionMethod: z.ZodEnum<["SOFT_DELETE", "HARD_DELETE", "CRYPTO_SHRED"]>; deletionApprovalRequired: z.ZodDefault; deletionApproverRoles: z.ZodOptional>; legalHoldOverridesRetention: z.ZodDefault; status: z.ZodEnum<["DRAFT", "ACTIVE", "DEPRECATED"]>; effectiveFrom: z.ZodString; effectiveUntil: z.ZodOptional; createdAt: z.ZodString; updatedAt: z.ZodString; approvedBy: z.ZodOptional; approvedAt: z.ZodOptional; }, "strip", z.ZodTypeAny, { name: string; id: string; status: "ACTIVE" | "DRAFT" | "DEPRECATED"; schemaVersion: string; createdAt: string; version: string; appliesToClassifications: ("ROUTINE" | "SIGNIFICANT" | "COMPLIANCE_RELEVANT" | "SECURITY_RELEVANT" | "INCIDENT_RELATED" | "LEGAL_HOLD")[]; defaultRetentionDays: number; wormEnabled: boolean; deletionMethod: "SOFT_DELETE" | "HARD_DELETE" | "CRYPTO_SHRED"; deletionApprovalRequired: boolean; legalHoldOverridesRetention: boolean; effectiveFrom: string; updatedAt: string; description?: string | undefined; appliesToSources?: string[] | undefined; appliesToJurisdictions?: string[] | undefined; maxRetentionDays?: number | undefined; minRetentionDays?: number | undefined; immutablePeriodDays?: number | undefined; deletionApproverRoles?: string[] | undefined; effectiveUntil?: string | undefined; approvedBy?: string | undefined; approvedAt?: string | undefined; }, { name: string; id: string; status: "ACTIVE" | "DRAFT" | "DEPRECATED"; createdAt: string; version: string; appliesToClassifications: ("ROUTINE" | "SIGNIFICANT" | "COMPLIANCE_RELEVANT" | "SECURITY_RELEVANT" | "INCIDENT_RELATED" | "LEGAL_HOLD")[]; defaultRetentionDays: number; deletionMethod: "SOFT_DELETE" | "HARD_DELETE" | "CRYPTO_SHRED"; effectiveFrom: string; updatedAt: string; schemaVersion?: string | undefined; description?: string | undefined; appliesToSources?: string[] | undefined; appliesToJurisdictions?: string[] | undefined; maxRetentionDays?: number | undefined; minRetentionDays?: number | undefined; wormEnabled?: boolean | undefined; immutablePeriodDays?: number | undefined; deletionApprovalRequired?: boolean | undefined; deletionApproverRoles?: string[] | undefined; legalHoldOverridesRetention?: boolean | undefined; effectiveUntil?: string | undefined; approvedBy?: string | undefined; approvedAt?: string | undefined; }>; export declare const LegalHoldSchema: z.ZodObject<{ id: z.ZodString; schemaVersion: z.ZodDefault; name: z.ZodString; description: z.ZodOptional; matterReference: z.ZodOptional; scope: z.ZodObject<{ correlationIds: z.ZodOptional>; evidencePackIds: z.ZodOptional>; actorIds: z.ZodOptional>; dateRangeStart: z.ZodOptional; dateRangeEnd: z.ZodOptional; classifications: z.ZodOptional, "many">>; customQuery: z.ZodOptional; }, "strip", z.ZodTypeAny, { classifications?: ("ROUTINE" | "SIGNIFICANT" | "COMPLIANCE_RELEVANT" | "SECURITY_RELEVANT" | "INCIDENT_RELATED" | "LEGAL_HOLD")[] | undefined; correlationIds?: string[] | undefined; evidencePackIds?: string[] | undefined; actorIds?: string[] | undefined; dateRangeStart?: string | undefined; dateRangeEnd?: string | undefined; customQuery?: string | undefined; }, { classifications?: ("ROUTINE" | "SIGNIFICANT" | "COMPLIANCE_RELEVANT" | "SECURITY_RELEVANT" | "INCIDENT_RELATED" | "LEGAL_HOLD")[] | undefined; correlationIds?: string[] | undefined; evidencePackIds?: string[] | undefined; actorIds?: string[] | undefined; dateRangeStart?: string | undefined; dateRangeEnd?: string | undefined; customQuery?: string | undefined; }>; preserveAllVersions: z.ZodDefault; preventModification: z.ZodDefault; preventDeletion: z.ZodDefault; notifyCustodians: z.ZodDefault; custodianEmails: z.ZodOptional>; status: z.ZodEnum<["PENDING", "ACTIVE", "RELEASED", "EXPIRED"]>; createdAt: z.ZodString; createdBy: z.ZodString; activatedAt: z.ZodOptional; releasedAt: z.ZodOptional; releasedBy: z.ZodOptional; releaseReason: z.ZodOptional; expiresAt: z.ZodOptional; holdHash: z.ZodOptional; }, "strip", z.ZodTypeAny, { name: string; id: string; status: "EXPIRED" | "ACTIVE" | "PENDING" | "RELEASED"; schemaVersion: string; createdAt: string; scope: { classifications?: ("ROUTINE" | "SIGNIFICANT" | "COMPLIANCE_RELEVANT" | "SECURITY_RELEVANT" | "INCIDENT_RELATED" | "LEGAL_HOLD")[] | undefined; correlationIds?: string[] | undefined; evidencePackIds?: string[] | undefined; actorIds?: string[] | undefined; dateRangeStart?: string | undefined; dateRangeEnd?: string | undefined; customQuery?: string | undefined; }; preserveAllVersions: boolean; preventModification: boolean; preventDeletion: boolean; notifyCustodians: boolean; createdBy: string; expiresAt?: string | undefined; description?: string | undefined; matterReference?: string | undefined; custodianEmails?: string[] | undefined; activatedAt?: string | undefined; releasedAt?: string | undefined; releasedBy?: string | undefined; releaseReason?: string | undefined; holdHash?: string | undefined; }, { name: string; id: string; status: "EXPIRED" | "ACTIVE" | "PENDING" | "RELEASED"; createdAt: string; scope: { classifications?: ("ROUTINE" | "SIGNIFICANT" | "COMPLIANCE_RELEVANT" | "SECURITY_RELEVANT" | "INCIDENT_RELATED" | "LEGAL_HOLD")[] | undefined; correlationIds?: string[] | undefined; evidencePackIds?: string[] | undefined; actorIds?: string[] | undefined; dateRangeStart?: string | undefined; dateRangeEnd?: string | undefined; customQuery?: string | undefined; }; createdBy: string; schemaVersion?: string | undefined; expiresAt?: string | undefined; description?: string | undefined; matterReference?: string | undefined; preserveAllVersions?: boolean | undefined; preventModification?: boolean | undefined; preventDeletion?: boolean | undefined; notifyCustodians?: boolean | undefined; custodianEmails?: string[] | undefined; activatedAt?: string | undefined; releasedAt?: string | undefined; releasedBy?: string | undefined; releaseReason?: string | undefined; holdHash?: string | undefined; }>; export declare const SealEventSchema: z.ZodObject<{ id: z.ZodString; schemaVersion: z.ZodDefault; sealType: z.ZodEnum<["EVIDENCE_SEAL", "PACK_SEAL", "PERIOD_SEAL", "COMPLIANCE_SEAL", "AUDIT_SEAL", "INCIDENT_SEAL"]>; sealedEntityType: z.ZodString; sealedEntityIds: z.ZodArray; evidencePackId: z.ZodOptional; sealedContentHash: z.ZodString; merkleRoot: z.ZodOptional; itemCount: z.ZodNumber; periodStart: z.ZodOptional; periodEnd: z.ZodOptional; algorithm: z.ZodEnum<["SHA256", "SHA384", "SHA512", "BLAKE3"]>; signature: z.ZodString; publicKeyId: z.ZodString; timestampAuthority: z.ZodOptional; timestampToken: z.ZodOptional; previousSealId: z.ZodOptional; previousSealHash: z.ZodOptional; chainPosition: z.ZodOptional; verificationUrl: z.ZodOptional; verificationInstructions: z.ZodOptional; sealedAt: z.ZodString; sealedBy: z.ZodString; sealHash: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; schemaVersion: string; signature: string; itemCount: number; algorithm: "SHA256" | "SHA384" | "SHA512" | "BLAKE3"; sealType: "EVIDENCE_SEAL" | "PACK_SEAL" | "PERIOD_SEAL" | "COMPLIANCE_SEAL" | "AUDIT_SEAL" | "INCIDENT_SEAL"; sealedEntityType: string; sealedEntityIds: string[]; sealedContentHash: string; publicKeyId: string; sealedAt: string; sealedBy: string; sealHash: string; merkleRoot?: string | undefined; evidencePackId?: string | undefined; chainPosition?: number | undefined; periodStart?: string | undefined; periodEnd?: string | undefined; timestampAuthority?: string | undefined; timestampToken?: string | undefined; previousSealId?: string | undefined; previousSealHash?: string | undefined; verificationUrl?: string | undefined; verificationInstructions?: string | undefined; }, { id: string; signature: string; itemCount: number; algorithm: "SHA256" | "SHA384" | "SHA512" | "BLAKE3"; sealType: "EVIDENCE_SEAL" | "PACK_SEAL" | "PERIOD_SEAL" | "COMPLIANCE_SEAL" | "AUDIT_SEAL" | "INCIDENT_SEAL"; sealedEntityType: string; sealedEntityIds: string[]; sealedContentHash: string; publicKeyId: string; sealedAt: string; sealedBy: string; sealHash: string; schemaVersion?: string | undefined; merkleRoot?: string | undefined; evidencePackId?: string | undefined; chainPosition?: number | undefined; periodStart?: string | undefined; periodEnd?: string | undefined; timestampAuthority?: string | undefined; timestampToken?: string | undefined; previousSealId?: string | undefined; previousSealHash?: string | undefined; verificationUrl?: string | undefined; verificationInstructions?: string | undefined; }>; export declare const RetentionScheduleSchema: z.ZodObject<{ id: z.ZodString; schemaVersion: z.ZodDefault; evidencePackId: z.ZodString; retentionPolicyId: z.ZodString; legalHoldIds: z.ZodOptional>; retainUntil: z.ZodString; originalRetainUntil: z.ZodString; extensionReason: z.ZodOptional; extendedBy: z.ZodOptional; extendedAt: z.ZodOptional; status: z.ZodEnum<["ACTIVE", "EXTENDED", "UNDER_HOLD", "PENDING_DELETION", "DELETED"]>; underLegalHold: z.ZodDefault; markedForDeletionAt: z.ZodOptional; deletionApprovedBy: z.ZodOptional; deletionApprovedAt: z.ZodOptional; deletedAt: z.ZodOptional; deletionCertificate: z.ZodOptional; createdAt: z.ZodString; updatedAt: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; status: "EXTENDED" | "ACTIVE" | "UNDER_HOLD" | "PENDING_DELETION" | "DELETED"; schemaVersion: string; createdAt: string; evidencePackId: string; updatedAt: string; retentionPolicyId: string; retainUntil: string; originalRetainUntil: string; underLegalHold: boolean; legalHoldIds?: string[] | undefined; extensionReason?: string | undefined; extendedBy?: string | undefined; extendedAt?: string | undefined; markedForDeletionAt?: string | undefined; deletionApprovedBy?: string | undefined; deletionApprovedAt?: string | undefined; deletedAt?: string | undefined; deletionCertificate?: string | undefined; }, { id: string; status: "EXTENDED" | "ACTIVE" | "UNDER_HOLD" | "PENDING_DELETION" | "DELETED"; createdAt: string; evidencePackId: string; updatedAt: string; retentionPolicyId: string; retainUntil: string; originalRetainUntil: string; schemaVersion?: string | undefined; legalHoldIds?: string[] | undefined; extensionReason?: string | undefined; extendedBy?: string | undefined; extendedAt?: string | undefined; underLegalHold?: boolean | undefined; markedForDeletionAt?: string | undefined; deletionApprovedBy?: string | undefined; deletionApprovedAt?: string | undefined; deletedAt?: string | undefined; deletionCertificate?: string | undefined; }>; export type RetentionPolicy = z.infer; export type LegalHold = z.infer; export type SealEvent = z.infer; export type RetentionSchedule = z.infer;