import type { MerkleProof } from '../types/passport.js';
import type { SourceReceipt, DataContentType, DataTerms, DataPurpose, DataAccessReceipt, AccessMethod, SourceReceiptVerification, AccessReceiptVerification, TermsComplianceResult } from '../types/data-source.js';
import type { ReceiptLedger } from './receipt-ledger.js';
export declare function registerSelfAttestedSource(opts: {
    ownerPrincipalId: string;
    ownerPublicKey: string;
    ownerPrivateKey: string;
    contentCommitment: string;
    contentType: DataContentType;
    contentDescriptor: string;
    dataTerms: DataTerms;
}): SourceReceipt;
export declare function registerCustodianAttestedSource(opts: {
    ownerPrincipalId: string;
    ownerPublicKey: string;
    custodianPublicKey: string;
    custodianPrivateKey: string;
    contentCommitment: string;
    contentType: DataContentType;
    contentDescriptor: string;
    dataTerms: DataTerms;
}): SourceReceipt;
export declare function registerGatewayObservedSource(opts: {
    gatewayPublicKey: string;
    gatewayPrivateKey: string;
    contentCommitment: string;
    contentType: DataContentType;
    contentDescriptor: string;
    gatewayDefaultTerms: DataTerms;
}): SourceReceipt;
export declare function verifySourceReceipt(receipt: SourceReceipt): SourceReceiptVerification;
export declare function revokeSourceReceipt(opts: {
    receipt: SourceReceipt;
    reason?: string;
    revokerPrivateKey: string;
}): SourceReceipt;
export declare function recordDataAccess(opts: {
    sourceReceipt: SourceReceipt;
    dataHash: string;
    agentId: string;
    agentPublicKey: string;
    delegationId?: string;
    principalId: string;
    executionFrameId: string;
    accessScope: string;
    accessMethod: AccessMethod;
    declaredPurpose: DataPurpose;
    gatewayId: string;
    gatewayPublicKey: string;
    gatewayPrivateKey: string;
}): DataAccessReceipt;
export declare function verifyDataAccessReceipt(receipt: DataAccessReceipt): AccessReceiptVerification;
export declare function checkTermsCompliance(opts: {
    sourceReceipt: SourceReceipt;
    declaredPurpose: DataPurpose;
    agentId: string;
    principalId: string;
    currentAccessCount?: number;
}): TermsComplianceResult;
export declare function composeTerms(terms: DataTerms[]): DataTerms;
export declare function buildDataAccessMerkleRoot(receipts: DataAccessReceipt[]): string;
export declare function proveDataAccessInclusion(receipts: DataAccessReceipt[], targetReceiptId: string): MerkleProof | null;
export declare function verifyDataAccessInclusionProof(proof: MerkleProof): boolean;
export declare function addDataAccessToLedger(ledger: ReceiptLedger, receipt: DataAccessReceipt): void;
//# sourceMappingURL=data-source.d.ts.map