/** * @module utils/schemas * @description Zod schemas for runtime validation of environment variables, * tool arguments, agent manifests, and x402 payment parameters. * * These schemas enforce correctness at the boundary: CLI scripts refuse * to run if required fields are missing or mis-typed, and SDK methods * validate inputs before hitting the chain. * * Zod is a peer dependency — these schemas are tree-shaken if not imported. * * @category Utils * @since v0.6.0 */ /** * @name createEnvSchema * @description Create a Zod schema for SAP SDK environment variables. * Validates that all required env vars are present and correctly typed. * * @returns A Zod schema object for env validation. * * @category Utils * @since v0.6.0 * * @example * ```ts * import { createEnvSchema } from "@synapse-sap/sdk"; * * const schema = createEnvSchema(); * const env = schema.parse(process.env); * // env.SOLANA_CLUSTER is typed as "mainnet-beta" | "devnet" | "localnet" * ``` */ export declare function createEnvSchema(): import("zod").ZodObject<{ SOLANA_CLUSTER: import("zod").ZodDefault>; SOLANA_RPC_URL: import("zod").ZodOptional; SOLANA_FALLBACK_RPC_URL: import("zod").ZodOptional; SOLANA_WS_URL: import("zod").ZodOptional; WALLET_KEYPAIR_PATH: import("zod").ZodOptional; WALLET_PRIVATE_KEY: import("zod").ZodOptional; SAP_PROGRAM_ID: import("zod").ZodOptional; DATABASE_URL: import("zod").ZodOptional; LOG_LEVEL: import("zod").ZodDefault>; X402_ENDPOINT: import("zod").ZodOptional; AGENT_URI: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; /** * @name createEndpointDescriptorSchema * @description Zod schema for {@link EndpointDescriptor}. * @returns A Zod schema for endpoint descriptor validation. * @category Utils * @since v0.6.0 */ export declare function createEndpointDescriptorSchema(): import("zod").ZodObject<{ url: import("zod").ZodString; method: import("zod").ZodDefault>; contentType: import("zod").ZodDefault; requiresAuth: import("zod").ZodDefault; authType: import("zod").ZodOptional>; requiresCSRF: import("zod").ZodDefault; requiresCookies: import("zod").ZodDefault; corsOrigins: import("zod").ZodOptional>; requiredHeaders: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>; /** * @name createHealthCheckSchema * @description Zod schema for {@link HealthCheckDescriptor}. * @returns A Zod schema for health check validation. * @category Utils * @since v0.6.0 */ export declare function createHealthCheckSchema(): import("zod").ZodObject<{ url: import("zod").ZodString; expectedStatus: import("zod").ZodDefault; timeoutMs: import("zod").ZodDefault; method: import("zod").ZodDefault>; }, import("zod/v4/core").$strip>; /** * @name createToolManifestEntrySchema * @description Zod schema for a single tool in an agent manifest. * @returns A Zod schema for tool manifest entry validation. * @category Utils * @since v0.6.0 */ export declare function createToolManifestEntrySchema(): import("zod").ZodObject<{ name: import("zod").ZodString; description: import("zod").ZodString; protocol: import("zod").ZodString; category: import("zod").ZodString; inputSchema: import("zod").ZodRecord; outputSchema: import("zod").ZodRecord; httpMethod: import("zod").ZodDefault>; paymentMode: import("zod").ZodDefault>; pricePerCall: import("zod").ZodDefault; requiredArgs: import("zod").ZodDefault>; prerequisites: import("zod").ZodDefault>; endpointOverride: import("zod").ZodOptional>; contentType: import("zod").ZodDefault; requiresAuth: import("zod").ZodDefault; authType: import("zod").ZodOptional>; requiresCSRF: import("zod").ZodDefault; requiresCookies: import("zod").ZodDefault; corsOrigins: import("zod").ZodOptional>; requiredHeaders: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>; /** * @name createAgentManifestSchema * @description Zod schema for a complete agent manifest. * @returns A Zod schema for manifest validation. * @category Utils * @since v0.6.0 * * @example * ```ts * import { createAgentManifestSchema } from "@synapse-sap/sdk"; * * const schema = createAgentManifestSchema(); * const manifest = schema.parse(JSON.parse(fs.readFileSync("manifest.json", "utf-8"))); * ``` */ export declare function createAgentManifestSchema(): import("zod").ZodObject<{ version: import("zod").ZodLiteral<"1.0.0">; wallet: import("zod").ZodString; name: import("zod").ZodString; description: import("zod").ZodString; endpoint: import("zod").ZodObject<{ url: import("zod").ZodString; method: import("zod").ZodDefault>; contentType: import("zod").ZodDefault; requiresAuth: import("zod").ZodDefault; authType: import("zod").ZodOptional>; requiresCSRF: import("zod").ZodDefault; requiresCookies: import("zod").ZodDefault; corsOrigins: import("zod").ZodOptional>; requiredHeaders: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>; healthCheck: import("zod").ZodOptional; timeoutMs: import("zod").ZodDefault; method: import("zod").ZodDefault>; }, import("zod/v4/core").$strip>>; tools: import("zod").ZodArray; outputSchema: import("zod").ZodRecord; httpMethod: import("zod").ZodDefault>; paymentMode: import("zod").ZodDefault>; pricePerCall: import("zod").ZodDefault; requiredArgs: import("zod").ZodDefault>; prerequisites: import("zod").ZodDefault>; endpointOverride: import("zod").ZodOptional>; contentType: import("zod").ZodDefault; requiresAuth: import("zod").ZodDefault; authType: import("zod").ZodOptional>; requiresCSRF: import("zod").ZodDefault; requiresCookies: import("zod").ZodDefault; corsOrigins: import("zod").ZodOptional>; requiredHeaders: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>; supportedNetworks: import("zod").ZodArray; generatedAt: import("zod").ZodString; }, import("zod/v4/core").$strip>; /** * @name createPreparePaymentSchema * @description Zod schema for x402 payment preparation parameters. * @returns A Zod schema for payment option validation. * @category Utils * @since v0.6.0 */ export declare function createPreparePaymentSchema(): import("zod").ZodObject<{ pricePerCall: import("zod").ZodUnion; maxCalls: import("zod").ZodOptional>; deposit: import("zod").ZodUnion; expiresAt: import("zod").ZodOptional>; volumeCurve: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>>; tokenMint: import("zod").ZodOptional; tokenDecimals: import("zod").ZodDefault; networkIdentifier: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; /** * @name createRegisterAgentSchema * @description Zod schema for agent registration arguments. * @returns A Zod schema for registration validation. * @category Utils * @since v0.6.0 */ export declare function createRegisterAgentSchema(): import("zod").ZodObject<{ name: import("zod").ZodString; description: import("zod").ZodString; agentId: import("zod").ZodNullable>; agentUri: import("zod").ZodNullable>; x402Endpoint: import("zod").ZodNullable>; capabilities: import("zod").ZodDefault>; protocolId: import("zod").ZodOptional>; version: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>>>; protocols: import("zod").ZodDefault>; pricing: import("zod").ZodDefault; rateLimit: import("zod").ZodNumber; tokenType: import("zod").ZodDefault>; settlementMode: import("zod").ZodDefault>; }, import("zod/v4/core").$strip>>>; }, import("zod/v4/core").$strip>; /** * @name createCallArgsSchema * @description Zod schema for `npm run call` script arguments. * Ensures all required fields are present before executing an x402 call. * * @returns A Zod schema for call argument validation. * @category Utils * @since v0.6.0 */ export declare function createCallArgsSchema(): import("zod").ZodObject<{ agentWallet: import("zod").ZodString; tool: import("zod").ZodString; args: import("zod").ZodDefault>; endpoint: import("zod").ZodOptional; network: import("zod").ZodOptional; maxRetries: import("zod").ZodDefault; timeoutMs: import("zod").ZodDefault; }, import("zod/v4/core").$strip>; /** * @name validateOrThrow * @description Validate a value against a Zod schema, throwing a SapValidationError * with a friendly message if validation fails. * * @param schema - A Zod schema. * @param value - The value to validate. * @param label - A label for error messages (e.g. "environment", "call args"). * @returns The parsed and typed value. * @throws {Error} With formatted validation errors. * * @category Utils * @since v0.6.0 */ export declare function validateOrThrow(schema: { parse: (v: unknown) => T; safeParse: (v: unknown) => { success: boolean; error?: { issues: Array<{ path: Array; message: string; }>; }; }; }, value: unknown, label: string): T; //# sourceMappingURL=schemas.d.ts.map