export type TransformClass = 'copy' | 'subset' | 'summary' | 'embedding' | 'aggregation' | 'synthetic' | 'model_training' | 'fine_tune' | 'rag_index' | 'decision_artifact' | 'redacted' | string; export type LineageConfidence = 'complete' | 'partial' | 'asserted' | 'inferred' | 'broken_external' | 'unverifiable'; export interface DerivationReceipt { receiptId: string; timestamp: string; derivativeId: string; derivativeType: string; parentArtifacts: ParentArtifact[]; transformClass: TransformClass; lineageConfidence: LineageConfidence; externalBoundaryBreak: boolean; breakReason?: string; upstreamObligationsRetained: boolean; retainedObligationIds?: string[]; isSyntheticDerivative: boolean; agentId: string; delegationId?: string; signature: string; } export interface ParentArtifact { artifactId: string; artifactType: 'access_receipt' | 'derivation_receipt' | 'training_receipt' | 'decision_artifact' | 'source_registration' | string; sourceId?: string; transformFromParent?: TransformClass; } export type PostRevocationObligation = 'none' | 'no_future_use' | 'delete_if_cached' | 'quarantine' | 'retraining_required' | 'compensation_only' | 'immutable_ledger_exempt' | 'contested'; export interface RevocationObligation { obligationId: string; sourceId: string; revokedAt: string; affectedArtifacts: AffectedArtifact[]; totalAffected: number; obligationsByType: Record; signature: string; } export interface AffectedArtifact { artifactId: string; artifactType: string; obligation: PostRevocationObligation; reason: string; derivationDepth: number; } export interface DecisionLineageReceipt { receiptId: string; timestamp: string; decisionArtifactId: string; decisionType: string; contributingSources: ContributingSource[]; lineageCompleteness: LineageConfidence; externalHopsPresent: boolean; transformChain: TransformClass[]; governingPurpose?: string; jurisdictionContext?: string; explanation?: string; signature: string; } export interface ContributingSource { sourceId: string; accessReceiptId: string; derivationDepth: number; transformPath: TransformClass[]; termsVersionAtAccess: string; lineageConfidence: LineageConfidence; compensationStatus: 'settled' | 'pending' | 'disputed' | 'revoked'; } export type StandardPurpose = 'research:academic' | 'research:commercial' | 'training:model' | 'training:fine_tune' | 'training:embedding' | 'training:rag' | 'inference:routing' | 'inference:decision_support' | 'analytics:internal' | 'analytics:commercial' | 'moderation' | 'commerce' | string; export interface RetentionPolicy { /** Max retention in milliseconds. null = no limit */ maxRetentionMs: number | null; /** What happens when retention expires */ onExpiry: 'delete' | 'quarantine' | 'renegotiate'; /** Access type distinctions */ ephemeralAccessMs?: number; persistentAccessMs?: number; } export interface TermsVersionPin { termsVersion: string; pinnedAt: string; compensationRate: number; currency: string; allowedPurposes: string[]; retentionPolicy?: RetentionPolicy; } export interface AggregateConstraint { /** Max accesses per rolling window */ maxAccessesPerWindow?: number; /** Window duration in milliseconds */ windowMs?: number; /** Max distinct records per window */ maxRecordsPerWindow?: number; /** Burst limit (max in any 1-second interval) */ burstLimit?: number; } export interface AggregateAccessLog { sourceId: string; agentId: string; windowStartMs: number; accessCount: number; recordCount: number; lastAccessMs: number; } export interface JurisdictionEnvelope { /** Source data jurisdiction (ISO 3166-1 alpha-2) */ sourceJurisdiction?: string; /** Processing restrictions (e.g. 'EU_ONLY', 'NO_CROSS_BORDER') */ processingRestrictions?: string[]; /** Whether jurisdiction must propagate to derivatives */ propagationRequired?: boolean; /** Transfer constraints (e.g. 'GDPR_ADEQUATE_ONLY') */ transferConstraints?: string[]; } export type GovernanceTaint = 'clean' | 'source_bound' | 'mixed' | 'restricted' | 'quarantined' | 'untraceable_contamination'; export interface TaintRecord { artifactId: string; taintLevel: GovernanceTaint; sources: string[]; reason: string; detectedAt: string; /** Can this taint be cleared? */ clearable: boolean; clearCondition?: string; } export type DisputeStatus = 'undisputed' | 'contested_by_source' | 'contested_by_agent' | 'contested_by_principal' | 'under_review' | 'resolved_in_favor_source' | 'resolved_in_favor_agent' | 'escalated_external'; export interface DisputeRecord { disputeId: string; artifactId: string; disputeType: 'unauthorized_access' | 'terms_violation' | 'compensation_dispute' | 'revocation_dispute' | 'lineage_dispute'; status: DisputeStatus; filedBy: string; filedAt: string; evidence: string[]; resolution?: string; resolvedAt?: string; signature: string; } export interface CombinationConstraint { /** This source cannot be combined with sources of these classes */ forbiddenSourceClasses?: string[]; /** This source cannot be combined with specific source IDs */ forbiddenSourceIds?: string[]; /** Reason for the constraint */ reason: string; /** Regulatory basis (e.g. 'COPPA', 'HIPAA', 'GDPR_Art9') */ regulatoryBasis?: string; } export interface AccessSnapshot { snapshotId: string; accessReceiptId: string; sourceId: string; /** Exact terms hash at moment of access */ termsHash: string; /** Pinned terms (full copy) */ pinnedTerms: TermsVersionPin; /** Jurisdiction at access time */ jurisdiction?: JurisdictionEnvelope; /** Combination constraints active at access time */ combinationConstraints?: CombinationConstraint[]; timestamp: string; signature: string; } export type RightsPropagation = 'inherit_full' | 'inherit_partial' | 'inherit_by_class' | 'extinguished' | 'compensation_only' | 'attribution_only' | 'explanation_only'; export interface RightsPropagationRule { /** How rights propagate by default */ defaultPropagation: RightsPropagation; /** Override by transform class (e.g. 'synthetic' → 'compensation_only') */ byTransformClass?: Record; /** Specific rights retained when propagation is partial */ retainedRights?: string[]; /** Source-defined: what the source owner requires */ sourceRequirement?: string; } export interface PurposeDriftCheck { originalPurpose: string; currentPurpose: string; driftDetected: boolean; driftPath: string[]; severity: 'none' | 'minor' | 'major' | 'violation'; explanation: string; } export type ReidentificationRisk = 'none_declared' | 'low' | 'medium' | 'high' | 'unknown' | 'mitigated'; export interface ReidentificationDeclaration { risk: ReidentificationRisk; assessmentMethod?: string; mitigationsApplied?: string[]; assessedAt: string; assessedBy: string; } //# sourceMappingURL=data-lifecycle.d.ts.map