import type { NativeCheckReceipt } from './native-check-receipt.js'; import type { NativeChangeState, NativeProjectPaths } from './native-types.js'; import { type NativeReceiptFenceChangedPath, type NativeReceiptScopeRecovery } from './native-receipt-errors.js'; import { type NativeVerificationReceipt, type NativeVerificationReceiptBindings } from './native-verification-receipt.js'; import { type NativeImplementationScopeBundle } from './native-verification-scope.js'; export declare const MAX_NATIVE_AUTOMATED_COMMAND_TIMEOUT_MS: number; export interface NativeVerificationReceiptContext { bindings: NativeVerificationReceiptBindings; acceptanceIds: string[]; implementationAuthor: string; implementationExecutionId: string; scope: NativeImplementationScopeBundle; } export interface NativeReceiptFenceInspection { matched: boolean; expectedScopeHash: string; actualScopeHash: string; expectedSnapshotHash: string; actualSnapshotHash: string; changedPaths: NativeReceiptFenceChangedPath[]; changedPathCount: number; changedPathsTruncated: boolean; } export interface NativeIssuedVerificationReceipt { receipt: NativeVerificationReceipt; ref: string; recovery?: NativeReceiptScopeRecovery; } export declare function loadNativeVerificationReceiptContext(paths: NativeProjectPaths, state: NativeChangeState): Promise; export interface NativeReceiptBindingComparison { ok: boolean; mismatches: string[]; } /** * Compare a receipt's bindings against the expected bindings field-by-field. * * Unlike a coarse {@link nativeReceiptBindingsMatch} boolean check, this returns * a per-field mismatch description so callers can surface exactly which binding * diverged (e.g. "sourceRevision: expected 6, got 5") instead of an opaque * "invalid" error. This is the diagnostic foundation that lets an Agent recover * from a stale receipt without user intervention. */ export declare function compareNativeReceiptBindings(receipt: Pick, expected: NativeVerificationReceiptBindings): NativeReceiptBindingComparison; export declare function nativeReceiptBindingsMatch(receipt: Pick, expected: NativeVerificationReceiptBindings): boolean; export declare function persistNativeStaticInspectionReceipt(options: { paths: NativeProjectPaths; state: NativeChangeState; checkReceipt: NativeCheckReceipt; checkReceiptRef: string; }): Promise<{ receipt: NativeVerificationReceipt; ref: string; }>; export interface NativeReusableRequiredCheckReceipt { receipt: NativeVerificationReceipt; ref: string; checkReceipt: NativeCheckReceipt; checkReceiptRef: string; } /** * Find a passed required-check receipt that still proves the current Verify * scope. The directory scan is deliberately skipped when no typed receipts * exist, keeping the first Verify pass on the existing fast path. */ export declare function findNativeReusableRequiredCheckReceipt(options: { paths: NativeProjectPaths; state: NativeChangeState; }): Promise; export declare function issueNativeManualEvidenceReceipt(options: { paths: NativeProjectPaths; name: string; acceptanceIds: readonly string[]; steps: readonly string[]; observations: readonly string[]; now?: Date; }): Promise<{ receipt: NativeVerificationReceipt; ref: string; }>; export declare function assertNativeReceiptScopeCurrent(options: { paths: NativeProjectPaths; state: NativeChangeState; context?: NativeVerificationReceiptContext; }): Promise; export declare function issueNativeAutomatedCheckReceipt(options: { paths: NativeProjectPaths; name: string; acceptanceIds: readonly string[]; command: string; args: readonly string[]; timeoutMs?: number; now?: () => Date; }): Promise; export declare function validateNativeStaticReceiptDependency(options: { paths: NativeProjectPaths; state: NativeChangeState; receipt: NativeVerificationReceipt; }): Promise; //# sourceMappingURL=native-verification-receipt-runtime.d.ts.map