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<string, number>;
    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<string, number>;
        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