/** * 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.ZodEffects; source: z.ZodObject<{ name: z.ZodString; url: z.ZodOptional; commit: z.ZodOptional; raw_score_field: z.ZodOptional; }, "strip", z.ZodTypeAny, { name: string; url?: string | undefined; commit?: string | undefined; raw_score_field?: string | undefined; }, { name: string; url?: string | undefined; commit?: string | undefined; raw_score_field?: string | undefined; }>; tool: z.ZodObject<{ id: z.ZodString; name: z.ZodString; provider_id: z.ZodString; capability: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; name: string; provider_id: string; capability: string; }, { id: string; name: string; provider_id: string; capability: string; }>; score: z.ZodObject<{ current: z.ZodNumber; maximum: z.ZodDefault>; min_required: z.ZodNumber; measured_at: z.ZodEffects; stale_after_seconds: z.ZodNumber; dimensions: z.ZodObject<{ reliability: z.ZodNumber; availability: z.ZodNumber; receipt_integrity: z.ZodNumber; policy_fit: z.ZodNumber; }, "strip", z.ZodTypeAny, { reliability: number; availability: number; receipt_integrity: number; policy_fit: number; }, { reliability: number; availability: number; receipt_integrity: number; policy_fit: number; }>; }, "strip", z.ZodTypeAny, { maximum: 100; current: number; min_required: number; measured_at: string; stale_after_seconds: number; dimensions: { reliability: number; availability: number; receipt_integrity: number; policy_fit: number; }; }, { current: number; min_required: number; measured_at: string; stale_after_seconds: number; dimensions: { reliability: number; availability: number; receipt_integrity: number; policy_fit: number; }; maximum?: 100 | undefined; }>; provider_health: z.ZodObject<{ status: z.ZodEnum<["ok", "degraded", "failed", "unknown"]>; success_rate_24h: z.ZodNumber; last_success_at: z.ZodOptional>; stale_streak: z.ZodNumber; receipt_state: z.ZodEnum<["verified", "pending_acceptance_verified", "missing", "invalid", "unverified"]>; }, "strip", z.ZodTypeAny, { status: "unknown" | "ok" | "failed" | "degraded"; stale_streak: number; receipt_state: "verified" | "pending_acceptance_verified" | "missing" | "invalid" | "unverified"; success_rate_24h: number; last_success_at?: string | undefined; }, { status: "unknown" | "ok" | "failed" | "degraded"; stale_streak: number; receipt_state: "verified" | "pending_acceptance_verified" | "missing" | "invalid" | "unverified"; success_rate_24h: number; last_success_at?: string | undefined; }>; x402_payment: z.ZodObject<{ scheme: z.ZodDefault>; network: z.ZodString; asset: z.ZodString; payTo: z.ZodEffects; maxAmountRequired: z.ZodEffects; }, "strip", z.ZodTypeAny, { scheme: "exact"; network: string; asset: string; maxAmountRequired: string; payTo: string; }, { network: string; asset: string; maxAmountRequired: string; payTo: string; scheme?: "exact" | undefined; }>; approval_gate: z.ZodObject<{ fail_closed: z.ZodLiteral; requires_human_approval: z.ZodBoolean; decision: z.ZodEnum<["allow", "deny"]>; reason: z.ZodArray; }, "strip", z.ZodTypeAny, { reason: string[]; fail_closed: true; requires_human_approval: boolean; decision: "allow" | "deny"; }, { reason: string[]; fail_closed: true; requires_human_approval: boolean; decision: "allow" | "deny"; }>; }, "strip", z.ZodTypeAny, { source: { name: string; url?: string | undefined; commit?: string | undefined; raw_score_field?: string | undefined; }; schema: "agentpay-paid-tool-quality-proof/v1"; generated_at: string; approval_gate: { reason: string[]; fail_closed: true; requires_human_approval: boolean; decision: "allow" | "deny"; }; x402_payment: { scheme: "exact"; network: string; asset: string; maxAmountRequired: string; payTo: string; }; tool: { id: string; name: string; provider_id: string; capability: string; }; score: { maximum: 100; current: number; min_required: number; measured_at: string; stale_after_seconds: number; dimensions: { reliability: number; availability: number; receipt_integrity: number; policy_fit: number; }; }; provider_health: { status: "unknown" | "ok" | "failed" | "degraded"; stale_streak: number; receipt_state: "verified" | "pending_acceptance_verified" | "missing" | "invalid" | "unverified"; success_rate_24h: number; last_success_at?: string | undefined; }; }, { source: { name: string; url?: string | undefined; commit?: string | undefined; raw_score_field?: string | undefined; }; schema: "agentpay-paid-tool-quality-proof/v1"; generated_at: string; approval_gate: { reason: string[]; fail_closed: true; requires_human_approval: boolean; decision: "allow" | "deny"; }; x402_payment: { network: string; asset: string; maxAmountRequired: string; payTo: string; scheme?: "exact" | undefined; }; tool: { id: string; name: string; provider_id: string; capability: string; }; score: { current: number; min_required: number; measured_at: string; stale_after_seconds: number; dimensions: { reliability: number; availability: number; receipt_integrity: number; policy_fit: number; }; maximum?: 100 | undefined; }; provider_health: { status: "unknown" | "ok" | "failed" | "degraded"; stale_streak: number; receipt_state: "verified" | "pending_acceptance_verified" | "missing" | "invalid" | "unverified"; success_rate_24h: number; last_success_at?: string | undefined; }; }>; 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