/** * Paid-tool quality threshold helpers. * * Buyer agents should not sign x402 payments from a catalog score alone. They * need a fresh score, a provider-health snapshot, a minimum-quality policy, and * an approval gate that fails closed when the score is stale or below threshold. */ import { z } from 'zod'; export declare const PaidToolQualityProofSchema: z.ZodObject<{ schema: z.ZodLiteral<"agentpay-paid-tool-quality-proof/v1">; generated_at: z.ZodString; source: z.ZodObject<{ name: z.ZodString; url: z.ZodOptional; commit: z.ZodOptional; raw_score_field: z.ZodOptional; }, z.core.$strip>; tool: z.ZodObject<{ id: z.ZodString; name: z.ZodString; provider_id: z.ZodString; capability: z.ZodString; }, z.core.$strip>; score: z.ZodObject<{ current: z.ZodNumber; maximum: z.ZodDefault>; min_required: z.ZodNumber; measured_at: z.ZodString; stale_after_seconds: z.ZodNumber; dimensions: z.ZodObject<{ reliability: z.ZodNumber; availability: z.ZodNumber; receipt_integrity: z.ZodNumber; policy_fit: z.ZodNumber; }, z.core.$strip>; }, z.core.$strip>; provider_health: z.ZodObject<{ status: z.ZodEnum<{ unknown: "unknown"; ok: "ok"; failed: "failed"; degraded: "degraded"; }>; success_rate_24h: z.ZodNumber; last_success_at: z.ZodOptional; stale_streak: z.ZodNumber; receipt_state: z.ZodEnum<{ verified: "verified"; pending_acceptance_verified: "pending_acceptance_verified"; missing: "missing"; invalid: "invalid"; unverified: "unverified"; }>; }, z.core.$strip>; x402_payment: z.ZodObject<{ scheme: z.ZodDefault>; network: z.ZodString; asset: z.ZodString; payTo: z.ZodString; maxAmountRequired: z.ZodString; }, z.core.$strip>; approval_gate: z.ZodObject<{ fail_closed: z.ZodLiteral; requires_human_approval: z.ZodBoolean; decision: z.ZodEnum<{ allow: "allow"; deny: "deny"; }>; reason: z.ZodArray; }, z.core.$strip>; }, z.core.$strip>; export type PaidToolQualityProof = z.infer; export type PaidToolQualityPolicy = { minimumScore: number; maxScoreAgeMs: number; maxProviderStaleStreak: number; minimumSuccessRate24h: number; allowedNetworks: string[]; allowedAssets: string[]; allowedPayTo: string[]; requireHumanApproval: boolean; requireVerifiedReceipt: boolean; }; export type PaidToolQualityDecision = { ok: boolean; decision: 'allow' | 'deny'; failures: string[]; warnings: string[]; }; export declare function evaluatePaidToolQualityThreshold(proofInput: unknown, policy: PaidToolQualityPolicy, now?: Date): PaidToolQualityDecision; //# sourceMappingURL=paid-tool-quality-threshold.d.ts.map