UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

1,352 lines 183 kB
import { z } from 'zod'; import { HookType } from '../hook/types.js'; import { IsmType } from '../ism/types.js'; import { DerivedMailboxClientFields, GasRouterConfigSchema } from '../router/types.js'; import { TokenType } from './config.js'; export declare const WarpRouteDeployConfigSchemaErrors: { ONLY_SYNTHETIC_REBASE: string; NO_SYNTHETIC_ONLY: string; }; export declare const TokenMetadataSchema: z.ZodObject<{ name: z.ZodString; symbol: z.ZodString; decimals: z.ZodOptional<z.ZodNumber>; scale: z.ZodOptional<z.ZodNumber>; isNft: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { symbol: string; name: string; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { symbol: string; name: string; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>; export type TokenMetadata = z.infer<typeof TokenMetadataSchema>; export declare const isTokenMetadata: (config: unknown) => config is { symbol: string; name: string; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }; export declare const NativeTokenConfigSchema: z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodEnum<[TokenType.native, TokenType.nativeScaled]>; }, "strip", z.ZodTypeAny, { type: TokenType.native | TokenType.nativeScaled; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.native | TokenType.nativeScaled; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>; export type NativeTokenConfig = z.infer<typeof NativeTokenConfigSchema>; export declare const isNativeTokenConfig: (config: unknown) => config is { type: TokenType.native | TokenType.nativeScaled; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }; export declare const CollateralTokenConfigSchema: z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodEnum<[TokenType.collateral, TokenType.collateralVault, TokenType.collateralVaultRebase, TokenType.collateralFiat, TokenType.collateralUri]>; token: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.collateralUri; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.collateralUri; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>; export type CollateralTokenConfig = z.infer<typeof CollateralTokenConfigSchema>; export declare const isCollateralTokenConfig: (config: unknown) => config is { type: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.collateralUri; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }; declare const xERC20LimitConfigSchema: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; export type XERC20LimitConfig = z.infer<typeof xERC20LimitConfigSchema>; declare const xERC20ExtraBridgesLimitConfigsSchema: z.ZodObject<{ lockbox: z.ZodString; limits: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; }, "strip", z.ZodTypeAny, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }>; declare const xERC20TokenMetadataSchema: z.ZodObject<{ xERC20: z.ZodOptional<z.ZodObject<{ extraBridges: z.ZodOptional<z.ZodArray<z.ZodObject<{ lockbox: z.ZodString; limits: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; }, "strip", z.ZodTypeAny, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }>, "many">>; warpRouteLimits: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; }, "strip", z.ZodTypeAny, { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; }, { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { xERC20?: { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; } | undefined; }, { xERC20?: { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; } | undefined; }>; export type XERC20TokenMetadata = z.infer<typeof xERC20TokenMetadataSchema>; export type XERC20TokenExtraBridgesLimits = z.infer<typeof xERC20ExtraBridgesLimitConfigsSchema>; export declare const XERC20TokenConfigSchema: z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; type: z.ZodEnum<[TokenType.XERC20, TokenType.XERC20Lockbox]>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; token: z.ZodString; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; xERC20: z.ZodOptional<z.ZodObject<{ extraBridges: z.ZodOptional<z.ZodArray<z.ZodObject<{ lockbox: z.ZodString; limits: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; }, "strip", z.ZodTypeAny, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }>, "many">>; warpRouteLimits: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; }, "strip", z.ZodTypeAny, { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; }, { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { type: TokenType.XERC20 | TokenType.XERC20Lockbox; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; xERC20?: { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; } | undefined; }, { type: TokenType.XERC20 | TokenType.XERC20Lockbox; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; xERC20?: { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; } | undefined; }>; export type XERC20LimitsTokenConfig = z.infer<typeof XERC20TokenConfigSchema>; export declare const isXERC20TokenConfig: (config: unknown) => config is { type: TokenType.XERC20 | TokenType.XERC20Lockbox; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; xERC20?: { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; } | undefined; }; export declare const CollateralRebaseTokenConfigSchema: z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodLiteral<TokenType.collateralVaultRebase>; }, "strip", z.ZodTypeAny, { type: TokenType.collateralVaultRebase; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.collateralVaultRebase; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>; export declare const isCollateralRebaseTokenConfig: (config: unknown) => config is { type: TokenType.collateralVaultRebase; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }; export declare const SyntheticTokenConfigSchema: z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodEnum<[TokenType.synthetic, TokenType.syntheticUri]>; initialSupply: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>; }, "strip", z.ZodTypeAny, { type: TokenType.synthetic | TokenType.syntheticUri; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; initialSupply?: string | number | undefined; }, { type: TokenType.synthetic | TokenType.syntheticUri; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; initialSupply?: string | number | undefined; }>; export type SyntheticTokenConfig = z.infer<typeof SyntheticTokenConfigSchema>; export declare const isSyntheticTokenConfig: (config: unknown) => config is { type: TokenType.synthetic | TokenType.syntheticUri; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; initialSupply?: string | number | undefined; }; export declare const SyntheticRebaseTokenConfigSchema: z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodLiteral<TokenType.syntheticRebase>; collateralChainName: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.syntheticRebase; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.syntheticRebase; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>; export type SyntheticRebaseTokenConfig = z.infer<typeof SyntheticRebaseTokenConfigSchema>; export declare const isSyntheticRebaseTokenConfig: (config: unknown) => config is { type: TokenType.syntheticRebase; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }; /** * @remarks * The discriminatedUnion is basically a switch statement for zod schemas * It uses the 'type' key to pick from the array of schemas to validate */ export declare const HypTokenConfigSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodEnum<[TokenType.native, TokenType.nativeScaled]>; }, "strip", z.ZodTypeAny, { type: TokenType.native | TokenType.nativeScaled; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.native | TokenType.nativeScaled; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodEnum<[TokenType.collateral, TokenType.collateralVault, TokenType.collateralVaultRebase, TokenType.collateralFiat, TokenType.collateralUri]>; token: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.collateralUri; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.collateralUri; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; type: z.ZodEnum<[TokenType.XERC20, TokenType.XERC20Lockbox]>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; token: z.ZodString; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; xERC20: z.ZodOptional<z.ZodObject<{ extraBridges: z.ZodOptional<z.ZodArray<z.ZodObject<{ lockbox: z.ZodString; limits: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; }, "strip", z.ZodTypeAny, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }>, "many">>; warpRouteLimits: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; }, "strip", z.ZodTypeAny, { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; }, { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { type: TokenType.XERC20 | TokenType.XERC20Lockbox; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; xERC20?: { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; } | undefined; }, { type: TokenType.XERC20 | TokenType.XERC20Lockbox; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; xERC20?: { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; } | undefined; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodEnum<[TokenType.synthetic, TokenType.syntheticUri]>; initialSupply: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>; }, "strip", z.ZodTypeAny, { type: TokenType.synthetic | TokenType.syntheticUri; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; initialSupply?: string | number | undefined; }, { type: TokenType.synthetic | TokenType.syntheticUri; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; initialSupply?: string | number | undefined; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodLiteral<TokenType.syntheticRebase>; collateralChainName: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.syntheticRebase; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.syntheticRebase; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>]>; export type HypTokenConfig = z.infer<typeof HypTokenConfigSchema>; export declare const HypTokenRouterConfigSchema: z.ZodIntersection<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodEnum<[TokenType.native, TokenType.nativeScaled]>; }, "strip", z.ZodTypeAny, { type: TokenType.native | TokenType.nativeScaled; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.native | TokenType.nativeScaled; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodEnum<[TokenType.collateral, TokenType.collateralVault, TokenType.collateralVaultRebase, TokenType.collateralFiat, TokenType.collateralUri]>; token: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.collateralUri; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.collateral | TokenType.collateralVault | TokenType.collateralVaultRebase | TokenType.collateralFiat | TokenType.collateralUri; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; type: z.ZodEnum<[TokenType.XERC20, TokenType.XERC20Lockbox]>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; token: z.ZodString; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; xERC20: z.ZodOptional<z.ZodObject<{ extraBridges: z.ZodOptional<z.ZodArray<z.ZodObject<{ lockbox: z.ZodString; limits: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; }, "strip", z.ZodTypeAny, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }, { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }>, "many">>; warpRouteLimits: z.ZodObject<{ bufferCap: z.ZodOptional<z.ZodString>; rateLimitPerSecond: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }, { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }>; }, "strip", z.ZodTypeAny, { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; }, { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { type: TokenType.XERC20 | TokenType.XERC20Lockbox; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; xERC20?: { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; } | undefined; }, { type: TokenType.XERC20 | TokenType.XERC20Lockbox; token: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; xERC20?: { warpRouteLimits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; extraBridges?: { lockbox: string; limits: { bufferCap?: string | undefined; rateLimitPerSecond?: string | undefined; }; }[] | undefined; } | undefined; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodEnum<[TokenType.synthetic, TokenType.syntheticUri]>; initialSupply: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>; }, "strip", z.ZodTypeAny, { type: TokenType.synthetic | TokenType.syntheticUri; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; initialSupply?: string | number | undefined; }, { type: TokenType.synthetic | TokenType.syntheticUri; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; initialSupply?: string | number | undefined; }>, z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decimals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; scale: z.ZodOptional<z.ZodOptional<z.ZodNumber>>; isNft: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>; type: z.ZodLiteral<TokenType.syntheticRebase>; collateralChainName: z.ZodString; }, "strip", z.ZodTypeAny, { type: TokenType.syntheticRebase; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }, { type: TokenType.syntheticRebase; collateralChainName: string; symbol?: string | undefined; name?: string | undefined; decimals?: number | undefined; scale?: number | undefined; isNft?: boolean | undefined; }>]>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; mailbox: z.ZodString; proxyAdmin: z.ZodOptional<z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; address: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { owner: string; ownerOverrides?: Record<string, string> | undefined; address?: string | undefined; }, { owner: string; ownerOverrides?: Record<string, string> | undefined; address?: string | undefined; }>>; hook: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; type: z.ZodLiteral<HookType.PROTOCOL_FEE>; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; paused: z.ZodBoolean; type: z.ZodLiteral<HookType.PAUSABLE>; }, "strip", z.ZodTypeAny, { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; type: z.ZodLiteral<HookType.OP_STACK>; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.MERKLE_TREE>; }, "strip", z.ZodTypeAny, { type: HookType.MERKLE_TREE; }, { type: HookType.MERKLE_TREE; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; type: z.ZodLiteral<HookType.INTERCHAIN_GAS_PAYMASTER>; beneficiary: z.ZodString; oracleKey: z.ZodString; overhead: z.ZodRecord<z.ZodString, z.ZodNumber>; oracleConfig: z.ZodRecord<z.ZodString, z.ZodObject<{ gasPrice: z.ZodString; tokenExchangeRate: z.ZodString; tokenDecimals: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; }, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { type: HookType.INTERCHAIN_GAS_PAYMASTER; owner: string; beneficiary: string; oracleKey: string; overhead: Record<string, number>; oracleConfig: Record<string, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; }>; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.INTERCHAIN_GAS_PAYMASTER; owner: string; beneficiary: string; oracleKey: string; overhead: Record<string, number>; oracleConfig: Record<string, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; }>; ownerOverrides?: Record<string, string> | undefined; }>, z.ZodType<import("../hook/types.js").DomainRoutingHookConfig, z.ZodTypeDef, import("../hook/types.js").DomainRoutingHookConfig>, z.ZodType<import("../hook/types.js").FallbackRoutingHookConfig, z.ZodTypeDef, import("../hook/types.js").FallbackRoutingHookConfig>, z.ZodType<import("../hook/types.js").AmountRoutingHookConfig, z.ZodTypeDef, import("../hook/types.js").AmountRoutingHookConfig>, z.ZodType<import("../hook/types.js").AggregationHookConfig, z.ZodTypeDef, import("../hook/types.js").AggregationHookConfig>, z.ZodObject<{ type: z.ZodLiteral<HookType.ARB_L2_TO_L1>; arbSys: z.ZodString; bridge: z.ZodOptional<z.ZodString>; destinationChain: z.ZodString; childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>; }, "strip", z.ZodTypeAny, { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.MAILBOX_DEFAULT>; }, "strip", z.ZodTypeAny, { type: HookType.MAILBOX_DEFAULT; }, { type: HookType.MAILBOX_DEFAULT; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.CCIP>; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.CCIP; destinationChain: string; }, { type: HookType.CCIP; destinationChain: string; }>]>>; interchainSecurityModule: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{ type: z.ZodLiteral<IsmType.TEST_ISM>; }, "strip", z.ZodTypeAny, { type: IsmType.TEST_ISM; }, { type: IsmType.TEST_ISM; }>, z.ZodObject<{ type: z.ZodLiteral<IsmType.OP_STACK>; origin: z.ZodString; nativeBridge: z.ZodString; }, "strip", z.ZodTypeAny, { type: IsmType.OP_STACK; origin: string; nativeBridge: string; }, { type: IsmType.OP_STACK; origin: string; nativeBridge: string; }>, z.ZodIntersection<z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; paused: z.ZodBoolean; }, "strip", z.ZodTypeAny, { owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }, { owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<IsmType.PAUSABLE>; }, "strip", z.ZodTypeAny, { type: IsmType.PAUSABLE; }, { type: IsmType.PAUSABLE; }>>, z.ZodObject<{ type: z.ZodLiteral<IsmType.TRUSTED_RELAYER>; relayer: z.ZodString; }, "strip", z.ZodTypeAny, { type: IsmType.TRUSTED_RELAYER; relayer: string; }, { type: IsmType.TRUSTED_RELAYER; relayer: string; }>, z.ZodObject<{ type: z.ZodLiteral<IsmType.CCIP>; originChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: IsmType.CCIP; originChain: string; }, { type: IsmType.CCIP; originChain: string; }>, z.ZodIntersection<z.ZodObject<{ validators: z.ZodArray<z.ZodString, "many">; threshold: z.ZodNumber; }, "strip", z.ZodTypeAny, { validators: string[]; threshold: number; }, { validators: string[]; threshold: number; }>, z.ZodObject<{ type: z.ZodUnion<[z.ZodLiteral<IsmType.MERKLE_ROOT_MULTISIG>, z.ZodLiteral<IsmType.MESSAGE_ID_MULTISIG>, z.ZodLiteral<IsmType.STORAGE_MERKLE_ROOT_MULTISIG>, z.ZodLiteral<IsmType.STORAGE_MESSAGE_ID_MULTISIG>]>; }, "strip", z.ZodTypeAny, { type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG; }, { type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG; }>>, z.ZodIntersection<z.ZodObject<{ validators: z.ZodArray<z.ZodObject<{ signingAddress: z.ZodString; weight: z.ZodNumber; }, "strip", z.ZodTypeAny, { signingAddress: string; weight: number; }, { signingAddress: string; weight: number; }>, "many">; thresholdWeight: z.ZodNumber; }, "strip", z.ZodTypeAny, { validators: { signingAddress: string; weight: number; }[]; thresholdWeight: number; }, { validators: { signingAddress: string; weight: number; }[]; thresholdWeight: number; }>, z.ZodObject<{ type: z.ZodUnion<[z.ZodLiteral<IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG>, z.ZodLiteral<IsmType.WEIGHTED_MESSAGE_ID_MULTISIG>]>; }, "strip", z.ZodTypeAny, { type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG; }, { type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG; }>>, z.ZodType<import("../ism/types.js").RoutingIsmConfig, z.ZodTypeDef, import("../ism/types.js").RoutingIsmConfig>, z.ZodType<import("../ism/types.js").AggregationIsmConfig, z.ZodTypeDef, import("../ism/types.js").AggregationIsmConfig>, z.ZodObject<{ type: z.ZodLiteral<IsmType.ARB_L2_TO_L1>; bridge: z.ZodString; }, "strip", z.ZodTypeAny, { type: IsmType.ARB_L2_TO_L1; bridge: string; }, { type: IsmType.ARB_L2_TO_L1; bridge: string; }>]>>; foreignDeployment: z.ZodOptional<z.ZodString>; remoteRouters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ address: z.ZodString; }, "strip", z.ZodTypeAny, { address: string; }, { address: string; }>>>; gas: z.ZodOptional<z.ZodNumber>; destinationGas: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, "strip", z.ZodTypeAny, { owner: string; mailbox: string; ownerOverrides?: Record<string, string> | undefined; proxyAdmin?: { owner: string; ownerOverrides?: Record<string, string> | undefined; address?: string | undefined; } | undefined; hook?: string | { type: HookType.MERKLE_TREE; } | { type: HookType.INTERCHAIN_GAS_PAYMASTER; owner: string; beneficiary: string; oracleKey: string; overhead: Record<string, number>; oracleConfig: Record<string, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; }>; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: HookType.MAILBOX_DEFAULT; } | { type: HookType.CCIP; destinationChain: string; } | import("../hook/types.js").DomainRoutingHookConfig | import("../hook/types.js").FallbackRoutingHookConfig | import("../hook/types.js").AmountRoutingHookConfig | import("../hook/types.js").AggregationHookConfig | undefined; interchainSecurityModule?: string | ({ validators: string[]; threshold: number; } & { type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG; }) | ({ validators: { signingAddress: string; weight: number; }[]; thresholdWeight: number; } & { type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG; }) | { type: IsmType.TEST_ISM; } | ({ owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } & { type: IsmType.PAUSABLE; }) | { type: IsmType.OP_STACK; origin: string; nativeBridge: string; } | { type: IsmType.TRUSTED_RELAYER; relayer: string; } | { type: IsmType.CCIP; originChain: string; } | { type: IsmType.ARB_L2_TO_L1; bridge: string; } | import("../ism/types.js").RoutingIsmConfig | import("../ism/types.js").AggregationIsmConfig | undefined; foreignDeployment?: string | undefined; remoteRouters?: Record<string, { address: string; }> | undefined; gas?: number | undefined; destinationGas?: Record<string, string> | undefined; }, { owner: string; mailbox: string; ownerOverrides?: Record<string, string> | undefined; proxyAdmin?: { owner: string; ownerOverrides?: Record<string, string> | undefined; address?: string | undefined; } | undefined; hook?: string | { type: HookType.MERKLE_TREE; } | { type: HookType.INTERCHAIN_GAS_PAYMASTER; owner: string; beneficiary: string; oracleKey: string; overhead: Record<string, number>; oracleConfig: Record<string, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; }>; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: HookType.MAILBOX_DEFAULT; } | { type: HookType.CCIP; destinationChain: string; } | import("../hook/types.js").DomainRoutingHookConfig | import("../hook/types.js").FallbackRoutingHookConfig | import("../hook/types.js").AmountRoutingHookConfig | import("../hook/types.js").AggregationHookConfig | undefined; interchainSecurityModule?: string | ({ validators: string[]; threshold: number; } & { type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG; }) | ({ validators: { signingAddress: string; weight: number; }[]; thresholdWeight: number; } & { type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG; }) | { type: IsmType.TEST_ISM; } | ({ owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } & { type: IsmType.PAUSABLE; }) | { type: IsmType.OP_STACK; origin: string; nativeBridge: string; } | { type: IsmType.TRUSTED_RELAYER; relayer: string; } | { type: IsmType.CCIP; originChain: string; } | { type: IsmType.ARB_L2_TO_L1; bridge: string; } | import("../ism/types.js").RoutingIsmConfig | import("../ism/types.js").AggregationIsmConfig | undefined; foreignDeployment?: string | undefined; remoteRouters?: Record<string, { address: string; }> | undefined; gas?: number | undefined; destinationGas?: Record<string, string> | undefined; }>>; export type HypTokenRouterConfig = z.infer<typeof HypTokenRouterConfigSchema>; export type DerivedTokenRouterConfig = z.infer<typeof HypTokenConfigSchema> & Omit<z.infer<typeof GasRouterConfigSchema>, keyof DerivedMailboxClientFields> & DerivedMailboxClientFields; export declare function derivedHookAddress(config: DerivedTokenRouterConfig): string; export declare function derivedIsmAddress(config: DerivedTokenRouterConfig): string; declare const HypTokenRouterConfigMailboxOptionalSchema: z.ZodIntersection<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ symbol: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; decim