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<string, PostRevocationObligation>;
    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<string, RightsPropagation>;
    /** 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