export type SourceMode = 'self_attested' | 'custodian_attested' | 'gateway_observed'; export type DataContentType = 'document' | 'structured_data' | 'media' | 'user_input' | 'model_context' | 'embedding' | 'aggregate'; export type DataPurpose = 'read' | 'analyze' | 'summarize' | 'generate' | 'recommend' | 'train' | 'embed' | 'redistribute' | 'commercial'; export type CompensationModel = { type: 'none'; } | { type: 'attribution_only'; } | { type: 'per_access'; amount: number; currency: string; } | { type: 'revenue_share'; percentage: number; } | { type: 'pool'; poolId: string; } | { type: 'negotiate'; contact: string; }; export type DerivativePolicy = 'unrestricted' | 'same_terms' | 'attribution_required' | 'no_derivatives'; export type AuditVisibility = 'source_only' | 'source_and_principal' | 'source_principal_auditor' | 'public'; export interface DataTerms { allowedPurposes: DataPurpose[]; excludedPurposes?: DataPurpose[]; excludedAgents?: string[]; excludedPrincipals?: string[]; requiredTrustLevel?: number; requireAttribution: boolean; requireNotification: boolean; compensation: CompensationModel; maxAccessCount?: number; retentionLimit?: string; expiresAt?: string; derivativePolicy: DerivativePolicy; auditVisibility: AuditVisibility; revocable: boolean; } export interface SourceReceipt { sourceReceiptId: string; sourceMode: SourceMode; sourcePrincipalId: string | null; signerPublicKey: string; contentCommitment: string; contentType: DataContentType; contentDescriptor: string; dataTerms: DataTerms; issuedAt: string; issuedBy: string; expiresAt?: string; revokedAt?: string; revocationReason?: string; signature: string; } export type AccessMethod = 'api_call' | 'file_read' | 'database_query' | 'web_fetch' | 'memory_retrieval' | 'embedding_lookup' | 'stream' | 'human_provided'; export interface DataAccessReceipt { accessReceiptId: string; sourceReceiptId: string; sourceMode: SourceMode; dataHash: string; agentId: string; agentPublicKey: string; delegationId?: string; principalId: string; executionFrameId: string; accessScope: string; accessMethod: AccessMethod; declaredPurpose: DataPurpose; termsAtAccessTime: DataTerms; timestamp: string; gatewayId: string; gatewayPublicKey: string; gatewaySignature: string; } export interface TermsComplianceResult { compliant: boolean; hardViolations: string[]; advisoryWarnings: string[]; accessesRemaining?: number; } export interface SourceReceiptVerification { valid: boolean; errors: string[]; signatureValid: boolean; termsValid: boolean; notExpired: boolean; notRevoked: boolean; trustLevel: 'high' | 'medium' | 'low'; } export interface AccessReceiptVerification { valid: boolean; errors: string[]; gatewaySignatureValid: boolean; sourceReceiptExists: boolean; temporalValid: boolean; } //# sourceMappingURL=data-source.d.ts.map