import { z } from 'zod';
import { ChainMap, HookConfig, HookType } from '@hyperlane-xyz/sdk';
import { Address } from '@hyperlane-xyz/utils';
import { CommandContext } from '../context/types.js';
declare const HooksConfigSchema: z.ZodObject<{
    default: 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;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }, {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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;
        }, "strip", z.ZodTypeAny, {
            gasPrice: string;
            tokenExchangeRate: string;
        }, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>>;
    }, "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;
        }>;
        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;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }>, z.ZodType<import("@hyperlane-xyz/sdk").DomainRoutingHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").DomainRoutingHookConfig>, z.ZodType<import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig>, z.ZodType<import("@hyperlane-xyz/sdk").AggregationHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").AggregationHookConfig>, z.ZodObject<{
        type: z.ZodLiteral<HookType.ARB_L2_TO_L1>;
        arbSys: z.ZodString;
        bridge: z.ZodOptional<z.ZodString>;
        destinationChain: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }, {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }>]>;
    required: 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;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }, {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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;
        }, "strip", z.ZodTypeAny, {
            gasPrice: string;
            tokenExchangeRate: string;
        }, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>>;
    }, "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;
        }>;
        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;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }>, z.ZodType<import("@hyperlane-xyz/sdk").DomainRoutingHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").DomainRoutingHookConfig>, z.ZodType<import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig>, z.ZodType<import("@hyperlane-xyz/sdk").AggregationHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").AggregationHookConfig>, z.ZodObject<{
        type: z.ZodLiteral<HookType.ARB_L2_TO_L1>;
        arbSys: z.ZodString;
        bridge: z.ZodOptional<z.ZodString>;
        destinationChain: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }, {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }>]>;
}, "strip", z.ZodTypeAny, {
    default: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
    required: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
}, {
    default: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
    required: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
}>;
export type HooksConfig = z.infer<typeof HooksConfigSchema>;
declare const HooksConfigMapSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
    default: 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;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }, {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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;
        }, "strip", z.ZodTypeAny, {
            gasPrice: string;
            tokenExchangeRate: string;
        }, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>>;
    }, "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;
        }>;
        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;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }>, z.ZodType<import("@hyperlane-xyz/sdk").DomainRoutingHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").DomainRoutingHookConfig>, z.ZodType<import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig>, z.ZodType<import("@hyperlane-xyz/sdk").AggregationHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").AggregationHookConfig>, z.ZodObject<{
        type: z.ZodLiteral<HookType.ARB_L2_TO_L1>;
        arbSys: z.ZodString;
        bridge: z.ZodOptional<z.ZodString>;
        destinationChain: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }, {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }>]>;
    required: 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;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }, {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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;
        }, "strip", z.ZodTypeAny, {
            gasPrice: string;
            tokenExchangeRate: string;
        }, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>>;
    }, "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;
        }>;
        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;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }>, z.ZodType<import("@hyperlane-xyz/sdk").DomainRoutingHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").DomainRoutingHookConfig>, z.ZodType<import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig>, z.ZodType<import("@hyperlane-xyz/sdk").AggregationHookConfig, z.ZodTypeDef, import("@hyperlane-xyz/sdk").AggregationHookConfig>, z.ZodObject<{
        type: z.ZodLiteral<HookType.ARB_L2_TO_L1>;
        arbSys: z.ZodString;
        bridge: z.ZodOptional<z.ZodString>;
        destinationChain: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }, {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }>]>;
}, "strip", z.ZodTypeAny, {
    default: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
    required: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
}, {
    default: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
    required: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
}>>;
export type HooksConfigMap = z.infer<typeof HooksConfigMapSchema>;
export declare function presetHookConfigs(owner: Address): HooksConfig;
export declare function readHooksConfigMap(filePath: string): ChainMap<{
    default: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
    required: string | {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: 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.MERKLE_TREE;
    } | {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } | (string & {
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        type: HookType.MERKLE_TREE;
    }) | (string & {
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | (string & {
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (string & import("@hyperlane-xyz/sdk").AggregationHookConfig) | (string & {
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    }) | ({
        type: HookType.PROTOCOL_FEE;
        owner: string;
        beneficiary: string;
        maxProtocolFee: string;
        protocolFee: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.PAUSABLE;
        owner: string;
        paused: boolean;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.OP_STACK;
        owner: string;
        nativeBridge: string;
        destinationChain: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        type: HookType.MERKLE_TREE;
    } & string) | ({
        type: HookType.INTERCHAIN_GAS_PAYMASTER;
        owner: string;
        beneficiary: string;
        oracleKey: string;
        overhead: Record<string, number>;
        oracleConfig: Record<string, {
            gasPrice: string;
            tokenExchangeRate: string;
        }>;
        ownerOverrides?: Record<string, string> | undefined;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.ROUTING;
    }) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    } & string) | ({
        owner: string;
        ownerOverrides?: Record<string, string> | undefined;
    } & {
        domains: ChainMap<string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        }>;
    } & {
        type: HookType.FALLBACK_ROUTING;
        fallback: string | {
            type: HookType.PROTOCOL_FEE;
            owner: string;
            beneficiary: string;
            maxProtocolFee: string;
            protocolFee: 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.MERKLE_TREE;
        } | {
            type: HookType.INTERCHAIN_GAS_PAYMASTER;
            owner: string;
            beneficiary: string;
            oracleKey: string;
            overhead: Record<string, number>;
            oracleConfig: Record<string, {
                gasPrice: string;
                tokenExchangeRate: string;
            }>;
            ownerOverrides?: Record<string, string> | undefined;
        } | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
            type: HookType.ARB_L2_TO_L1;
            destinationChain: string;
            arbSys: string;
            bridge?: string | undefined;
        };
    }) | (import("@hyperlane-xyz/sdk").AggregationHookConfig & string) | ({
        type: HookType.ARB_L2_TO_L1;
        destinationChain: string;
        arbSys: string;
        bridge?: string | undefined;
    } & string);
}> | undefined;
export declare function createHookConfig({ context, selectMessage, advanced, }: {
    context: CommandContext;
    selectMessage?: string;
    advanced?: boolean;
}): Promise<HookConfig>;
export declare const createMerkleTreeConfig: (...args: any[]) => Promise<string | {
    type: HookType.PROTOCOL_FEE;
    owner: string;
    beneficiary: string;
    maxProtocolFee: string;
    protocolFee: 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.MERKLE_TREE;
} | {
    type: HookType.INTERCHAIN_GAS_PAYMASTER;
    owner: string;
    beneficiary: string;
    oracleKey: string;
    overhead: Record<string, number>;
    oracleConfig: Record<string, {
        gasPrice: string;
        tokenExchangeRate: string;
    }>;
    ownerOverrides?: Record<string, string> | undefined;
} | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
    type: HookType.ARB_L2_TO_L1;
    destinationChain: string;
    arbSys: string;
    bridge?: string | undefined;
}>;
export declare const createProtocolFeeConfig: (...args: any[]) => Promise<string | {
    type: HookType.PROTOCOL_FEE;
    owner: string;
    beneficiary: string;
    maxProtocolFee: string;
    protocolFee: 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.MERKLE_TREE;
} | {
    type: HookType.INTERCHAIN_GAS_PAYMASTER;
    owner: string;
    beneficiary: string;
    oracleKey: string;
    overhead: Record<string, number>;
    oracleConfig: Record<string, {
        gasPrice: string;
        tokenExchangeRate: string;
    }>;
    ownerOverrides?: Record<string, string> | undefined;
} | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
    type: HookType.ARB_L2_TO_L1;
    destinationChain: string;
    arbSys: string;
    bridge?: string | undefined;
}>;
export declare const createIGPConfig: (...args: any[]) => Promise<string | {
    type: HookType.PROTOCOL_FEE;
    owner: string;
    beneficiary: string;
    maxProtocolFee: string;
    protocolFee: 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.MERKLE_TREE;
} | {
    type: HookType.INTERCHAIN_GAS_PAYMASTER;
    owner: string;
    beneficiary: string;
    oracleKey: string;
    overhead: Record<string, number>;
    oracleConfig: Record<string, {
        gasPrice: string;
        tokenExchangeRate: string;
    }>;
    ownerOverrides?: Record<string, string> | undefined;
} | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
    type: HookType.ARB_L2_TO_L1;
    destinationChain: string;
    arbSys: string;
    bridge?: string | undefined;
}>;
export declare const createAggregationConfig: (...args: any[]) => Promise<string | {
    type: HookType.PROTOCOL_FEE;
    owner: string;
    beneficiary: string;
    maxProtocolFee: string;
    protocolFee: 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.MERKLE_TREE;
} | {
    type: HookType.INTERCHAIN_GAS_PAYMASTER;
    owner: string;
    beneficiary: string;
    oracleKey: string;
    overhead: Record<string, number>;
    oracleConfig: Record<string, {
        gasPrice: string;
        tokenExchangeRate: string;
    }>;
    ownerOverrides?: Record<string, string> | undefined;
} | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
    type: HookType.ARB_L2_TO_L1;
    destinationChain: string;
    arbSys: string;
    bridge?: string | undefined;
}>;
export declare const createRoutingConfig: (...args: any[]) => Promise<string | {
    type: HookType.PROTOCOL_FEE;
    owner: string;
    beneficiary: string;
    maxProtocolFee: string;
    protocolFee: 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.MERKLE_TREE;
} | {
    type: HookType.INTERCHAIN_GAS_PAYMASTER;
    owner: string;
    beneficiary: string;
    oracleKey: string;
    overhead: Record<string, number>;
    oracleConfig: Record<string, {
        gasPrice: string;
        tokenExchangeRate: string;
    }>;
    ownerOverrides?: Record<string, string> | undefined;
} | import("@hyperlane-xyz/sdk").DomainRoutingHookConfig | import("@hyperlane-xyz/sdk").FallbackRoutingHookConfig | import("@hyperlane-xyz/sdk").AggregationHookConfig | {
    type: HookType.ARB_L2_TO_L1;
    destinationChain: string;
    arbSys: string;
    bridge?: string | undefined;
}>;
export {};
//# sourceMappingURL=hooks.d.ts.map