/** * Zod schemas for TinyCloud Web Core types. * * These schemas provide runtime validation for RPC providers, route configuration, * and ENS data. Types are derived from schemas using z.infer<>. * * @packageDocumentation */ import { z } from "zod"; /** * ENS data supported by TCW. */ export declare const EnsDataSchema: z.ZodObject<{ /** ENS name/domain. */ domain: z.ZodOptional>; /** ENS avatar. */ avatarUrl: z.ZodOptional>; }, "strip", z.ZodTypeAny, { domain?: string; avatarUrl?: string; }, { domain?: string; avatarUrl?: string; }>; export type EnsData = z.infer; /** * Enum of supported EthersJS providers. */ export declare const RPCProvidersSchema: z.ZodEnum<["alchemy", "ankr", "cloudflare", "custom", "etherscan", "infura", "pocket"]>; export type RPCProviders = z.infer; /** * Enum values for RPCProviders (for backwards compatibility). */ export declare const RPCProviders: { readonly AlchemyProvider: "alchemy"; readonly AnkrProvider: "ankr"; readonly CloudflareProvider: "cloudflare"; readonly CustomProvider: "custom"; readonly EtherscanProvider: "etherscan"; readonly InfuraProvider: "infura"; readonly PocketProvider: "pocket"; }; /** * Enum of supported networks for Etherscan. */ export declare const EtherscanProviderNetworksSchema: z.ZodEnum<["homestead", "ropsten", "rinkeby", "goerli", "kovan"]>; export type EtherscanProviderNetworks = z.infer; export declare const EtherscanProviderNetworks: { readonly MAINNET: "homestead"; readonly ROPSTEN: "ropsten"; readonly RINKEBY: "rinkeby"; readonly GOERLI: "goerli"; readonly KOVAN: "kovan"; }; /** * Enum of supported networks for Infura. */ export declare const InfuraProviderNetworksSchema: z.ZodEnum<["homestead", "ropsten", "rinkeby", "goerli", "kovan", "matic", "maticmum", "optimism", "optimism-kovan", "arbitrum", "arbitrum-rinkeby"]>; export type InfuraProviderNetworks = z.infer; export declare const InfuraProviderNetworks: { readonly MAINNET: "homestead"; readonly ROPSTEN: "ropsten"; readonly RINKEBY: "rinkeby"; readonly GOERLI: "goerli"; readonly KOVAN: "kovan"; readonly POLYGON: "matic"; readonly POLYGON_MUMBAI: "maticmum"; readonly OPTIMISM: "optimism"; readonly OPTIMISM_KOVAN: "optimism-kovan"; readonly ARBITRUM: "arbitrum"; readonly ARBITRUM_RINKEBY: "arbitrum-rinkeby"; }; /** * Enum of supported networks for Alchemy. */ export declare const AlchemyProviderNetworksSchema: z.ZodEnum<["homestead", "ropsten", "rinkeby", "goerli", "kovan", "matic", "maticmum", "optimism", "optimism-kovan", "arbitrum", "arbitrum-rinkeby"]>; export type AlchemyProviderNetworks = z.infer; export declare const AlchemyProviderNetworks: { readonly MAINNET: "homestead"; readonly ROPSTEN: "ropsten"; readonly RINKEBY: "rinkeby"; readonly GOERLI: "goerli"; readonly KOVAN: "kovan"; readonly POLYGON: "matic"; readonly POLYGON_MUMBAI: "maticmum"; readonly OPTIMISM: "optimism"; readonly OPTIMISM_KOVAN: "optimism-kovan"; readonly ARBITRUM: "arbitrum"; readonly ARBITRUM_RINKEBY: "arbitrum-rinkeby"; }; /** * Enum of supported networks for Pocket. */ export declare const PocketProviderNetworksSchema: z.ZodEnum<["homestead", "ropsten", "rinkeby", "goerli"]>; export type PocketProviderNetworks = z.infer; export declare const PocketProviderNetworks: { readonly MAINNET: "homestead"; readonly ROPSTEN: "ropsten"; readonly RINKEBY: "rinkeby"; readonly GOERLI: "goerli"; }; /** * Enum of supported networks for Ankr. */ export declare const AnkrProviderNetworksSchema: z.ZodEnum<["homestead", "matic", "arbitrum"]>; export type AnkrProviderNetworks = z.infer; export declare const AnkrProviderNetworks: { readonly MAINNET: "homestead"; readonly POLYGON: "matic"; readonly ARBITRUM: "arbitrum"; }; /** * Infura provider project settings. */ export declare const InfuraProviderProjectSettingsSchema: z.ZodObject<{ projectId: z.ZodString; projectSecret: z.ZodString; }, "strip", z.ZodTypeAny, { projectId?: string; projectSecret?: string; }, { projectId?: string; projectSecret?: string; }>; export type InfuraProviderProjectSettings = z.infer; /** * Etherscan provider settings. */ export declare const EtherscanProviderSchema: z.ZodObject<{ service: z.ZodLiteral<"etherscan">; apiKey: z.ZodOptional; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "etherscan"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan"; }, { service?: "etherscan"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan"; }>; export type EtherscanProvider = z.infer; /** * Infura provider settings. */ export declare const InfuraProviderSchema: z.ZodObject<{ service: z.ZodLiteral<"infura">; apiKey: z.ZodUnion<[z.ZodString, z.ZodObject<{ projectId: z.ZodString; projectSecret: z.ZodString; }, "strip", z.ZodTypeAny, { projectId?: string; projectSecret?: string; }, { projectId?: string; projectSecret?: string; }>]>; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "infura"; apiKey?: string | { projectId?: string; projectSecret?: string; }; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan" | "matic" | "maticmum" | "optimism" | "optimism-kovan" | "arbitrum" | "arbitrum-rinkeby"; }, { service?: "infura"; apiKey?: string | { projectId?: string; projectSecret?: string; }; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan" | "matic" | "maticmum" | "optimism" | "optimism-kovan" | "arbitrum" | "arbitrum-rinkeby"; }>; export type InfuraProvider = z.infer; /** * Alchemy provider settings. */ export declare const AlchemyProviderSchema: z.ZodObject<{ service: z.ZodLiteral<"alchemy">; apiKey: z.ZodOptional; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "alchemy"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan" | "matic" | "maticmum" | "optimism" | "optimism-kovan" | "arbitrum" | "arbitrum-rinkeby"; }, { service?: "alchemy"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan" | "matic" | "maticmum" | "optimism" | "optimism-kovan" | "arbitrum" | "arbitrum-rinkeby"; }>; export type AlchemyProvider = z.infer; /** * Cloudflare provider settings. */ export declare const CloudflareProviderSchema: z.ZodObject<{ service: z.ZodLiteral<"cloudflare">; }, "strip", z.ZodTypeAny, { service?: "cloudflare"; }, { service?: "cloudflare"; }>; export type CloudflareProvider = z.infer; /** * Pocket provider settings. */ export declare const PocketProviderSchema: z.ZodObject<{ service: z.ZodLiteral<"pocket">; apiKey: z.ZodOptional; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "pocket"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli"; }, { service?: "pocket"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli"; }>; export type PocketProvider = z.infer; /** * Ankr provider settings. */ export declare const AnkrProviderSchema: z.ZodObject<{ service: z.ZodLiteral<"ankr">; apiKey: z.ZodOptional; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "ankr"; apiKey?: string; network?: "homestead" | "matic" | "arbitrum"; }, { service?: "ankr"; apiKey?: string; network?: "homestead" | "matic" | "arbitrum"; }>; export type AnkrProvider = z.infer; /** * Custom provider settings. * Note: url and network are ethers types, validated as unknown. */ export declare const CustomProviderSchema: z.ZodObject<{ service: z.ZodLiteral<"custom">; url: z.ZodOptional; network: z.ZodOptional; }, "strip", z.ZodTypeAny, { service?: "custom"; network?: unknown; url?: unknown; }, { service?: "custom"; network?: unknown; url?: unknown; }>; export type CustomProvider = z.infer; /** * Generic provider settings. * Note: url and network are ethers types, validated as unknown. */ export declare const GenericProviderSchema: z.ZodObject<{ service: z.ZodEnum<["alchemy", "ankr", "cloudflare", "custom", "etherscan", "infura", "pocket"]>; url: z.ZodOptional; network: z.ZodOptional; apiKey: z.ZodOptional]>>; }, "strip", z.ZodTypeAny, { service?: "alchemy" | "ankr" | "cloudflare" | "custom" | "etherscan" | "infura" | "pocket"; apiKey?: string | { projectId?: string; projectSecret?: string; }; network?: unknown; url?: unknown; }, { service?: "alchemy" | "ankr" | "cloudflare" | "custom" | "etherscan" | "infura" | "pocket"; apiKey?: string | { projectId?: string; projectSecret?: string; }; network?: unknown; url?: unknown; }>; export type GenericProvider = z.infer; /** * Supported provider types (discriminated union). */ export declare const RPCProviderSchema: z.ZodDiscriminatedUnion<"service", [z.ZodObject<{ service: z.ZodLiteral<"etherscan">; apiKey: z.ZodOptional; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "etherscan"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan"; }, { service?: "etherscan"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan"; }>, z.ZodObject<{ service: z.ZodLiteral<"infura">; apiKey: z.ZodUnion<[z.ZodString, z.ZodObject<{ projectId: z.ZodString; projectSecret: z.ZodString; }, "strip", z.ZodTypeAny, { projectId?: string; projectSecret?: string; }, { projectId?: string; projectSecret?: string; }>]>; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "infura"; apiKey?: string | { projectId?: string; projectSecret?: string; }; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan" | "matic" | "maticmum" | "optimism" | "optimism-kovan" | "arbitrum" | "arbitrum-rinkeby"; }, { service?: "infura"; apiKey?: string | { projectId?: string; projectSecret?: string; }; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan" | "matic" | "maticmum" | "optimism" | "optimism-kovan" | "arbitrum" | "arbitrum-rinkeby"; }>, z.ZodObject<{ service: z.ZodLiteral<"alchemy">; apiKey: z.ZodOptional; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "alchemy"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan" | "matic" | "maticmum" | "optimism" | "optimism-kovan" | "arbitrum" | "arbitrum-rinkeby"; }, { service?: "alchemy"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli" | "kovan" | "matic" | "maticmum" | "optimism" | "optimism-kovan" | "arbitrum" | "arbitrum-rinkeby"; }>, z.ZodObject<{ service: z.ZodLiteral<"cloudflare">; }, "strip", z.ZodTypeAny, { service?: "cloudflare"; }, { service?: "cloudflare"; }>, z.ZodObject<{ service: z.ZodLiteral<"pocket">; apiKey: z.ZodOptional; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "pocket"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli"; }, { service?: "pocket"; apiKey?: string; network?: "homestead" | "ropsten" | "rinkeby" | "goerli"; }>, z.ZodObject<{ service: z.ZodLiteral<"ankr">; apiKey: z.ZodOptional; network: z.ZodOptional>; }, "strip", z.ZodTypeAny, { service?: "ankr"; apiKey?: string; network?: "homestead" | "matic" | "arbitrum"; }, { service?: "ankr"; apiKey?: string; network?: "homestead" | "matic" | "arbitrum"; }>, z.ZodObject<{ service: z.ZodLiteral<"custom">; url: z.ZodOptional; network: z.ZodOptional; }, "strip", z.ZodTypeAny, { service?: "custom"; network?: unknown; url?: unknown; }, { service?: "custom"; network?: unknown; url?: unknown; }>]>; export type RPCProvider = z.infer; export declare const isEtherscanProvider: (provider: RPCProvider) => provider is EtherscanProvider; export declare const isInfuraProvider: (provider: RPCProvider) => provider is InfuraProvider; export declare const isAlchemyProvider: (provider: RPCProvider) => provider is AlchemyProvider; export declare const isCloudflareProvider: (provider: RPCProvider) => provider is CloudflareProvider; export declare const isPocketProvider: (provider: RPCProvider) => provider is PocketProvider; export declare const isAnkrProvider: (provider: RPCProvider) => provider is AnkrProvider; export declare const isCustomProvider: (provider: RPCProvider) => provider is CustomProvider; /** * TCW Route Configuration. * This configuration is used to override the default endpoint paths. */ export declare const RouteConfigSchema: z.ZodObject<{ /** Endpoint path. */ url: z.ZodOptional; /** Endpoint request method. */ method: z.ZodOptional>; /** Custom Operation - Replace the tcw function called with a function of your own. */ customAPIOperation: z.ZodOptional, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }>; export type RouteConfig = z.infer; /** * Server middleware configuration. */ export declare const ServerMiddlewareConfigSchema: z.ZodObject<{ path: z.ZodString; callback: z.ZodOptional, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { path?: string; callback?: (...args: unknown[]) => unknown; }, { path?: string; callback?: (...args: unknown[]) => unknown; }>; export type ServerMiddlewareConfig = z.infer; /** * Type-Guard for ServerMiddlewareConfig. */ export declare const isServerMiddlewareConfig: (config: ServerRouteEndpointType) => config is ServerMiddlewareConfig; /** * Server route endpoint type (union). */ export declare const ServerRouteEndpointTypeSchema: z.ZodUnion<[z.ZodObject<{ url: z.ZodOptional>; method: z.ZodOptional>>; customAPIOperation: z.ZodOptional, z.ZodUnknown>>>; }, "strip", z.ZodTypeAny, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }>, z.ZodUnknown, z.ZodString, z.ZodObject<{ path: z.ZodString; callback: z.ZodOptional, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { path?: string; callback?: (...args: unknown[]) => unknown; }, { path?: string; callback?: (...args: unknown[]) => unknown; }>]>; export type ServerRouteEndpointType = z.infer; /** * Server endpoints configuration. */ export declare const ServerRoutesSchema: z.ZodObject<{ /** Get nonce endpoint path. /tcw-nonce as default. */ nonce: z.ZodOptional>; method: z.ZodOptional>>; customAPIOperation: z.ZodOptional, z.ZodUnknown>>>; }, "strip", z.ZodTypeAny, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }>, z.ZodUnknown, z.ZodString, z.ZodObject<{ path: z.ZodString; callback: z.ZodOptional, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { path?: string; callback?: (...args: unknown[]) => unknown; }, { path?: string; callback?: (...args: unknown[]) => unknown; }>]>>; /** Post login endpoint path. /tcw-login as default. */ login: z.ZodOptional>; method: z.ZodOptional>>; customAPIOperation: z.ZodOptional, z.ZodUnknown>>>; }, "strip", z.ZodTypeAny, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }>, z.ZodUnknown, z.ZodString, z.ZodObject<{ path: z.ZodString; callback: z.ZodOptional, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { path?: string; callback?: (...args: unknown[]) => unknown; }, { path?: string; callback?: (...args: unknown[]) => unknown; }>]>>; /** Post logout endpoint path. /tcw-logout as default. */ logout: z.ZodOptional>; method: z.ZodOptional>>; customAPIOperation: z.ZodOptional, z.ZodUnknown>>>; }, "strip", z.ZodTypeAny, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }, { url?: string; method?: "get" | "post" | "put" | "delete"; customAPIOperation?: (...args: unknown[]) => unknown; }>, z.ZodUnknown, z.ZodString, z.ZodObject<{ path: z.ZodString; callback: z.ZodOptional, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { path?: string; callback?: (...args: unknown[]) => unknown; }, { path?: string; callback?: (...args: unknown[]) => unknown; }>]>>; }, "strip", z.ZodTypeAny, { nonce?: unknown; login?: unknown; logout?: unknown; }, { nonce?: unknown; login?: unknown; logout?: unknown; }>; export type ServerRoutes = z.infer; /** * Server endpoints name configuration. */ export declare const ServerRouteNamesSchema: z.ZodObject<{ /** Get nonce endpoint path. /tcw-nonce as default. */ nonce: z.ZodOptional; /** Post login endpoint path. /tcw-login as default. */ login: z.ZodOptional; /** Post logout endpoint path. /tcw-logout as default. */ logout: z.ZodOptional; }, "strip", z.ZodTypeAny, { nonce?: string; login?: string; logout?: string; }, { nonce?: string; login?: string; logout?: string; }>; export type ServerRouteNames = z.infer; /** * Validation error type. */ export interface ValidationError { code: string; message: string; issues?: unknown[]; } /** * Result type for validation operations. */ export type ValidationResult = { ok: true; data: T; } | { ok: false; error: ValidationError; }; /** * Validates EnsData. */ export declare function validateEnsData(data: unknown): ValidationResult; /** * Validates RPCProvider. */ export declare function validateRPCProvider(data: unknown): ValidationResult; /** * Validates ServerRoutes. */ export declare function validateServerRoutes(data: unknown): ValidationResult; //# sourceMappingURL=types.schema.d.ts.map