import { z } from 'zod'; import { Address, WithAddress } from '@hyperlane-xyz/utils'; import { ChainMap, OwnableConfig } from '../types.js'; export declare enum OnchainHookType { UNUSED = 0, ROUTING = 1, AGGREGATION = 2, MERKLE_TREE = 3, INTERCHAIN_GAS_PAYMASTER = 4, FALLBACK_ROUTING = 5, ID_AUTH_ISM = 6, PAUSABLE = 7, PROTOCOL_FEE = 8, DEPRECATED = 9, RATE_LIMITED = 10, ARB_L2_TO_L1 = 11, OP_L2_TO_L1 = 12, MAILBOX_DEFAULT_HOOK = 13, AMOUNT_ROUTING = 14 } export declare const HookType: { readonly CUSTOM: "custom"; readonly MERKLE_TREE: "merkleTreeHook"; readonly INTERCHAIN_GAS_PAYMASTER: "interchainGasPaymaster"; readonly AGGREGATION: "aggregationHook"; readonly PROTOCOL_FEE: "protocolFee"; readonly OP_STACK: "opStackHook"; readonly ROUTING: "domainRoutingHook"; readonly FALLBACK_ROUTING: "fallbackRoutingHook"; readonly AMOUNT_ROUTING: "amountRoutingHook"; readonly PAUSABLE: "pausableHook"; readonly ARB_L2_TO_L1: "arbL2ToL1Hook"; readonly MAILBOX_DEFAULT: "defaultHook"; readonly CCIP: "ccipHook"; readonly UNKNOWN: "unknownHook"; }; export type HookType = (typeof HookType)[keyof typeof HookType]; export type DeployableHookType = Exclude; export declare const HookTypeToContractNameMap: Record; export type MerkleTreeHookConfig = z.infer; export type IgpHookConfig = z.infer; export type ProtocolFeeHookConfig = z.infer; export type PausableHookConfig = z.infer; export type OpStackHookConfig = z.infer; export type ArbL2ToL1HookConfig = z.infer; export type MailboxDefaultHookConfig = z.infer; export type CCIPHookConfig = z.infer; export type AggregationHookConfig = { type: typeof HookType.AGGREGATION; hooks: Array; }; export type RoutingHookConfig = OwnableConfig & { domains: ChainMap; }; export type DomainRoutingHookConfig = RoutingHookConfig & { type: typeof HookType.ROUTING; }; export type FallbackRoutingHookConfig = RoutingHookConfig & { type: typeof HookType.FALLBACK_ROUTING; fallback: HookConfig; }; export type AmountRoutingHookConfig = { type: typeof HookType.AMOUNT_ROUTING; threshold: number; lowerHook: HookConfig; upperHook: HookConfig; }; export type HookConfig = z.infer; export type DerivedHookConfig = WithAddress>; export declare const MUTABLE_HOOK_TYPE: HookType[]; export declare const ProtocolFeeSchema: z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"protocolFee">; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }>; export declare const MerkleTreeSchema: z.ZodObject<{ type: z.ZodLiteral<"merkleTreeHook">; }, "strip", z.ZodTypeAny, { type: "merkleTreeHook"; }, { type: "merkleTreeHook"; }>; export declare const PausableHookSchema: z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { paused: z.ZodBoolean; } & { type: z.ZodLiteral<"pausableHook">; }, "strip", z.ZodTypeAny, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }>; export declare const MailboxDefaultHookSchema: z.ZodObject<{ type: z.ZodLiteral<"defaultHook">; }, "strip", z.ZodTypeAny, { type: "defaultHook"; }, { type: "defaultHook"; }>; export declare const OpStackHookSchema: z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"opStackHook">; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }>; export declare const ArbL2ToL1HookSchema: z.ZodObject<{ type: z.ZodLiteral<"arbL2ToL1Hook">; arbSys: z.ZodString; bridge: z.ZodOptional; destinationChain: z.ZodString; childHook: z.ZodLazy>; }, "strip", z.ZodTypeAny, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>; export declare const IgpSchema: z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"interchainGasPaymaster">; beneficiary: z.ZodString; oracleKey: z.ZodString; overhead: z.ZodRecord; oracleConfig: z.ZodRecord; } & { typicalCost: z.ZodOptional>; }, "strip", z.ZodTypeAny, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }>; export declare const DomainRoutingHookConfigSchema: z.ZodSchema; export declare const FallbackRoutingHookConfigSchema: z.ZodSchema; export declare const AmountRoutingHookConfigSchema: z.ZodSchema; export declare const AggregationHookConfigSchema: z.ZodSchema; export declare const CCIPHookSchema: z.ZodObject<{ type: z.ZodLiteral<"ccipHook">; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "ccipHook"; destinationChain: string; }, { type: "ccipHook"; destinationChain: string; }>; export declare const UnknownHookSchema: z.ZodObject<{ type: z.ZodLiteral<"unknownHook">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">>; export type UnknownHookConfig = z.infer; /** * Recursively normalizes unknown hook type values to HookType.UNKNOWN. * Use this before parsing with HookConfigSchema when configs may contain * hook types not yet known to this SDK version. * * Note: String address configs (e.g., "0x...") are passed through unchanged * since they represent deployed hook addresses, not hook type configs. */ export declare function normalizeUnknownHookTypes(config: T): T; export declare const HookConfigSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"protocolFee">; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { paused: z.ZodBoolean; } & { type: z.ZodLiteral<"pausableHook">; }, "strip", z.ZodTypeAny, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"opStackHook">; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"merkleTreeHook">; }, "strip", z.ZodTypeAny, { type: "merkleTreeHook"; }, { type: "merkleTreeHook"; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"interchainGasPaymaster">; beneficiary: z.ZodString; oracleKey: z.ZodString; overhead: z.ZodRecord; oracleConfig: z.ZodRecord; } & { typicalCost: z.ZodOptional>; }, "strip", z.ZodTypeAny, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }>, z.ZodType, z.ZodType, z.ZodType, z.ZodType, z.ZodObject<{ type: z.ZodLiteral<"arbL2ToL1Hook">; arbSys: z.ZodString; bridge: z.ZodOptional; destinationChain: z.ZodString; childHook: z.ZodLazy>; }, "strip", z.ZodTypeAny, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<"defaultHook">; }, "strip", z.ZodTypeAny, { type: "defaultHook"; }, { type: "defaultHook"; }>, z.ZodObject<{ type: z.ZodLiteral<"ccipHook">; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "ccipHook"; destinationChain: string; }, { type: "ccipHook"; destinationChain: string; }>, z.ZodObject<{ type: z.ZodLiteral<"unknownHook">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">>]>; /** * Forward-compatible hook config schema that normalizes unknown hook types. * Use this instead of HookConfigSchema when parsing configs that may contain * hook types added in newer registry versions. */ export declare const SafeParseHookConfigSchema: z.ZodEffects>; } & { type: z.ZodLiteral<"protocolFee">; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { paused: z.ZodBoolean; } & { type: z.ZodLiteral<"pausableHook">; }, "strip", z.ZodTypeAny, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"opStackHook">; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"merkleTreeHook">; }, "strip", z.ZodTypeAny, { type: "merkleTreeHook"; }, { type: "merkleTreeHook"; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"interchainGasPaymaster">; beneficiary: z.ZodString; oracleKey: z.ZodString; overhead: z.ZodRecord; oracleConfig: z.ZodRecord; } & { typicalCost: z.ZodOptional>; }, "strip", z.ZodTypeAny, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }>, z.ZodType, z.ZodType, z.ZodType, z.ZodType, z.ZodObject<{ type: z.ZodLiteral<"arbL2ToL1Hook">; arbSys: z.ZodString; bridge: z.ZodOptional; destinationChain: z.ZodString; childHook: z.ZodLazy>; }, "strip", z.ZodTypeAny, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<"defaultHook">; }, "strip", z.ZodTypeAny, { type: "defaultHook"; }, { type: "defaultHook"; }>, z.ZodObject<{ type: z.ZodLiteral<"ccipHook">; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "ccipHook"; destinationChain: string; }, { type: "ccipHook"; destinationChain: string; }>, z.ZodObject<{ type: z.ZodLiteral<"unknownHook">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">>]>, string | { type: "merkleTreeHook"; } | { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; } | { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; } | { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; } | { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; } | { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: "defaultHook"; } | { type: "ccipHook"; destinationChain: string; } | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">, unknown>; export declare const HooksConfigSchema: z.ZodObject<{ default: z.ZodUnion<[z.ZodString, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"protocolFee">; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { paused: z.ZodBoolean; } & { type: z.ZodLiteral<"pausableHook">; }, "strip", z.ZodTypeAny, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"opStackHook">; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"merkleTreeHook">; }, "strip", z.ZodTypeAny, { type: "merkleTreeHook"; }, { type: "merkleTreeHook"; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"interchainGasPaymaster">; beneficiary: z.ZodString; oracleKey: z.ZodString; overhead: z.ZodRecord; oracleConfig: z.ZodRecord; } & { typicalCost: z.ZodOptional>; }, "strip", z.ZodTypeAny, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }>, z.ZodType, z.ZodType, z.ZodType, z.ZodType, z.ZodObject<{ type: z.ZodLiteral<"arbL2ToL1Hook">; arbSys: z.ZodString; bridge: z.ZodOptional; destinationChain: z.ZodString; childHook: z.ZodLazy>; }, "strip", z.ZodTypeAny, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<"defaultHook">; }, "strip", z.ZodTypeAny, { type: "defaultHook"; }, { type: "defaultHook"; }>, z.ZodObject<{ type: z.ZodLiteral<"ccipHook">; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "ccipHook"; destinationChain: string; }, { type: "ccipHook"; destinationChain: string; }>, z.ZodObject<{ type: z.ZodLiteral<"unknownHook">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">>]>; required: z.ZodUnion<[z.ZodString, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"protocolFee">; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { paused: z.ZodBoolean; } & { type: z.ZodLiteral<"pausableHook">; }, "strip", z.ZodTypeAny, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"opStackHook">; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"merkleTreeHook">; }, "strip", z.ZodTypeAny, { type: "merkleTreeHook"; }, { type: "merkleTreeHook"; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"interchainGasPaymaster">; beneficiary: z.ZodString; oracleKey: z.ZodString; overhead: z.ZodRecord; oracleConfig: z.ZodRecord; } & { typicalCost: z.ZodOptional>; }, "strip", z.ZodTypeAny, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }>, z.ZodType, z.ZodType, z.ZodType, z.ZodType, z.ZodObject<{ type: z.ZodLiteral<"arbL2ToL1Hook">; arbSys: z.ZodString; bridge: z.ZodOptional; destinationChain: z.ZodString; childHook: z.ZodLazy>; }, "strip", z.ZodTypeAny, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<"defaultHook">; }, "strip", z.ZodTypeAny, { type: "defaultHook"; }, { type: "defaultHook"; }>, z.ZodObject<{ type: z.ZodLiteral<"ccipHook">; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "ccipHook"; destinationChain: string; }, { type: "ccipHook"; destinationChain: string; }>, z.ZodObject<{ type: z.ZodLiteral<"unknownHook">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">>]>; }, "strip", z.ZodTypeAny, { default: string | { type: "merkleTreeHook"; } | { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; } | { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; } | { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; } | { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; } | { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: "defaultHook"; } | { type: "ccipHook"; destinationChain: string; } | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">; required: string | { type: "merkleTreeHook"; } | { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; } | { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; } | { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; } | { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; } | { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: "defaultHook"; } | { type: "ccipHook"; destinationChain: string; } | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">; }, { default: string | { type: "merkleTreeHook"; } | { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; } | { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; } | { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; } | { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; } | { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: "defaultHook"; } | { type: "ccipHook"; destinationChain: string; } | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">; required: string | { type: "merkleTreeHook"; } | { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; } | { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; } | { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; } | { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; } | { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: "defaultHook"; } | { type: "ccipHook"; destinationChain: string; } | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">; }>; export type HooksConfig = z.infer; export declare const HooksConfigMapSchema: z.ZodRecord>; } & { type: z.ZodLiteral<"protocolFee">; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { paused: z.ZodBoolean; } & { type: z.ZodLiteral<"pausableHook">; }, "strip", z.ZodTypeAny, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"opStackHook">; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"merkleTreeHook">; }, "strip", z.ZodTypeAny, { type: "merkleTreeHook"; }, { type: "merkleTreeHook"; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"interchainGasPaymaster">; beneficiary: z.ZodString; oracleKey: z.ZodString; overhead: z.ZodRecord; oracleConfig: z.ZodRecord; } & { typicalCost: z.ZodOptional>; }, "strip", z.ZodTypeAny, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }>, z.ZodType, z.ZodType, z.ZodType, z.ZodType, z.ZodObject<{ type: z.ZodLiteral<"arbL2ToL1Hook">; arbSys: z.ZodString; bridge: z.ZodOptional; destinationChain: z.ZodString; childHook: z.ZodLazy>; }, "strip", z.ZodTypeAny, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<"defaultHook">; }, "strip", z.ZodTypeAny, { type: "defaultHook"; }, { type: "defaultHook"; }>, z.ZodObject<{ type: z.ZodLiteral<"ccipHook">; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "ccipHook"; destinationChain: string; }, { type: "ccipHook"; destinationChain: string; }>, z.ZodObject<{ type: z.ZodLiteral<"unknownHook">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">>]>; required: z.ZodUnion<[z.ZodString, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"protocolFee">; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }, { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { paused: z.ZodBoolean; } & { type: z.ZodLiteral<"pausableHook">; }, "strip", z.ZodTypeAny, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }, { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"opStackHook">; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }, { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"merkleTreeHook">; }, "strip", z.ZodTypeAny, { type: "merkleTreeHook"; }, { type: "merkleTreeHook"; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional>; } & { type: z.ZodLiteral<"interchainGasPaymaster">; beneficiary: z.ZodString; oracleKey: z.ZodString; overhead: z.ZodRecord; oracleConfig: z.ZodRecord; } & { typicalCost: z.ZodOptional>; }, "strip", z.ZodTypeAny, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }, { gasPrice: string; tokenExchangeRate: string; tokenDecimals?: number | undefined; typicalCost?: { handleGasAmount: number; totalGasAmount: number; totalUsdCost: number; } | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }, { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; }>, z.ZodType, z.ZodType, z.ZodType, z.ZodType, z.ZodObject<{ type: z.ZodLiteral<"arbL2ToL1Hook">; arbSys: z.ZodString; bridge: z.ZodOptional; destinationChain: z.ZodString; childHook: z.ZodLazy>; }, "strip", z.ZodTypeAny, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<"defaultHook">; }, "strip", z.ZodTypeAny, { type: "defaultHook"; }, { type: "defaultHook"; }>, z.ZodObject<{ type: z.ZodLiteral<"ccipHook">; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: "ccipHook"; destinationChain: string; }, { type: "ccipHook"; destinationChain: string; }>, z.ZodObject<{ type: z.ZodLiteral<"unknownHook">; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">>]>; }, "strip", z.ZodTypeAny, { default: string | { type: "merkleTreeHook"; } | { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; } | { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; } | { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; } | { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; } | { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: "defaultHook"; } | { type: "ccipHook"; destinationChain: string; } | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">; required: string | { type: "merkleTreeHook"; } | { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; } | { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; } | { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; } | { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; } | { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: "defaultHook"; } | { type: "ccipHook"; destinationChain: string; } | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | z.objectOutputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">; }, { default: string | { type: "merkleTreeHook"; } | { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; } | { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; } | { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; } | { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; } | { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: "defaultHook"; } | { type: "ccipHook"; destinationChain: string; } | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">; required: string | { type: "merkleTreeHook"; } | { type: "interchainGasPaymaster"; owner: string; beneficiary: string; oracleKey: string; overhead: Record; oracleConfig: Record; ownerOverrides?: Record | undefined; } | { type: "protocolFee"; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record | undefined; } | { type: "pausableHook"; owner: string; paused: boolean; ownerOverrides?: Record | undefined; } | { type: "opStackHook"; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record | undefined; } | { type: "arbL2ToL1Hook"; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: "defaultHook"; } | { type: "ccipHook"; destinationChain: string; } | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | z.objectInputType<{ type: z.ZodLiteral<"unknownHook">; }, z.ZodTypeAny, "passthrough">; }>>; export type HooksConfigMap = z.infer; //# sourceMappingURL=types.d.ts.map