export interface ContributionRecord { contributionId: string; sourceReceiptId: string; sourceDescriptor: string; agentId: string; agentPublicKey: string; principalId: string; accessCount: number; firstAccessAt: string; lastAccessAt: string; purposes: string[]; accessMethods: string[]; totalDataBytes?: number; compensationAccrued: CompensationAccrual; receiptIds: string[]; } export interface CompensationAccrual { model: 'none' | 'attribution_only' | 'per_access' | 'revenue_share' | 'pool' | 'negotiate'; totalOwed: number; currency: string; accessesBilled: number; lastComputedAt: string; } export interface ContributionQuery { sourceReceiptId?: string; agentId?: string; principalId?: string; purpose?: string; after?: string; before?: string; minAccessCount?: number; } export interface SourceMetrics { sourceReceiptId: string; sourceDescriptor: string; totalAccesses: number; uniqueAgents: number; uniquePrincipals: number; purposeBreakdown: Record; compensationOwed: CompensationAccrual; firstAccess: string; lastAccess: string; topAgents: Array<{ agentId: string; accessCount: number; }>; } export interface AgentDataFootprint { agentId: string; agentPublicKey: string; principalId: string; sourcesAccessed: Array<{ sourceReceiptId: string; sourceDescriptor: string; accessCount: number; purposes: string[]; lastAccess: string; compensationStatus: 'none' | 'attribution_only' | 'accruing' | 'settled'; }>; totalSources: number; totalAccesses: number; totalCompensationAccrued: number; currency: string; } export interface SettlementPeriod { startDate: string; endDate: string; periodLabel: string; } export interface SettlementLineItem { sourceReceiptId: string; sourceDescriptor: string; sourcePrincipalId: string | null; payerPrincipalId: string; accessCount: number; compensationModel: 'none' | 'attribution_only' | 'per_access' | 'revenue_share' | 'pool' | 'negotiate'; amount: number; currency: string; receiptIds: string[]; period: SettlementPeriod; } export interface SettlementRecord { settlementId: string; period: SettlementPeriod; generatedAt: string; generatedBy: string; lineItems: SettlementLineItem[]; totalAmount: number; currency: string; totalAccesses: number; uniqueSources: number; uniquePayers: number; merkleRoot: string; signature: string; /** Optional AttributionConsent citations. When present, verifySettlement() * requires a matching AttributionReceipt[] for each entry. */ citations?: import('../v2/attribution-consent/types.js').ArtifactCitation[]; } export interface SettlementVerification { valid: boolean; errors: string[]; signatureValid: boolean; merkleValid: boolean; lineItemsConsistent: boolean; totalConsistent: boolean; } export interface DataComplianceReport { reportId: string; reportType: 'gdpr_article30' | 'euai_article10' | 'soc2_data' | 'general'; period: SettlementPeriod; generatedAt: string; agentId?: string; principalId?: string; summary: { totalDataAccesses: number; uniqueDataSources: number; purposeBreakdown: Record; compensationSummary: { total: number; currency: string; settled: number; pending: number; }; termsViolations: number; advisoryWarnings: number; }; accessDetails: Array<{ sourceDescriptor: string; accessCount: number; purposes: string[]; compensationModel: string; termsCompliant: boolean; }>; signature: string; } export type DataAttributionModel = 'equal' | 'access_weighted' | 'recency_weighted' | 'custom'; export interface DataSourceAttributionEntry { sourceReceiptId: string; sourceDescriptor: string; accessReceiptIds: string[]; accessCount: number; weight: number; percentage: number; compensationOwed: number; currency: string; compensationModel: string; } export interface DataSourceAttributionReport { reportId: string; outputArtifactId: string; outputType: string; sources: DataSourceAttributionEntry[]; attributionModel: DataAttributionModel; totalSources: number; totalAccessEvents: number; totalCompensation: number; currency: string; merkleRoot: string; entriesHash: string; generatedAt: string; generatedBy: string; signature: string; } //# sourceMappingURL=data-contribution.d.ts.map