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