import type { AttributionReceipt, ArtifactCitation } from '../v2/attribution-consent/index.js';
export interface CompletionReceiptOptions {
    permitReceiptHash: string;
    executionResult: 'success' | 'failure' | 'partial' | 'timeout';
    resultSummary?: string;
    resultHash?: string;
    executedAt: string;
    durationMs?: number;
    privateKey: string;
    /** Optional AttributionConsent citations. When present, verification
     *  requires a matching AttributionReceipt[]. */
    citations?: ArtifactCitation[];
}
export interface CompletionReceipt {
    completionId: string;
    permitReceiptHash: string;
    executionResult: string;
    resultSummary: string;
    resultHash: string;
    executedAt: string;
    durationMs: number;
    signature: string;
    signedAt: string;
    citations?: ArtifactCitation[];
}
export declare function createCompletionReceipt(opts: CompletionReceiptOptions): CompletionReceipt;
export declare function verifyCompletionReceipt(receipt: CompletionReceipt, publicKey: string, attributionReceipts?: AttributionReceipt[]): {
    valid: boolean;
    errors: string[];
};
export declare function linkPermitAndCompletion(permitReceipt: Record<string, unknown>, completionReceipt: CompletionReceipt): {
    linked: boolean;
    permitHash: string;
    completionClaimsHash: string;
    errors: string[];
};
//# sourceMappingURL=completion.d.ts.map