import type { WarpRouteDeployConfig } from '@hyperlane-xyz/sdk/token/types';
import type { ChainName } from '@hyperlane-xyz/sdk/types';
import type { WarpCoreConfig } from '@hyperlane-xyz/sdk/warp/types';
import { z } from 'zod';
export type MaybePromise<T> = T | Promise<T> | PromiseLike<T>;
export declare const ChainAddressesSchema: z.ZodRecord<z.ZodString, z.ZodString>;
export type ChainAddresses = z.infer<typeof ChainAddressesSchema>;
/**
 * Schema for warp route filter parameters.
 * This serves as the single source of truth for both TypeScript types and validation.
 */
export declare const WarpRouteFilterSchema: z.ZodObject<{
    symbol: z.ZodOptional<z.ZodString>;
    label: z.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
    symbol?: string | undefined;
    label?: string | undefined;
}, {
    symbol?: string | undefined;
    label?: string | undefined;
}>;
/**
 * TypeScript type inferred from the schema.
 */
export type WarpRouteFilterParams = z.infer<typeof WarpRouteFilterSchema>;
export declare const UpdateChainSchema: z.ZodObject<{
    metadata: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
    addresses: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    metadata?: z.objectOutputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough"> | undefined;
    addresses?: Record<string, string> | undefined;
}, {
    metadata?: z.objectInputType<{
        availability: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled>;
            reasons: z.ZodArray<z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason>, "many">;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Disabled;
            reasons: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainDisabledReason[];
        }>, z.ZodObject<{
            status: z.ZodLiteral<import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live>;
        }, "strip", z.ZodTypeAny, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }, {
            status: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainStatus.Live;
        }>]>>;
        bech32Prefix: z.ZodOptional<z.ZodString>;
        blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            url: z.ZodString;
            apiUrl: z.ZodString;
            apiKey: z.ZodOptional<z.ZodString>;
            family: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily, string>>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ExplorerFamily | undefined;
        }, {
            name: string;
            url: string;
            apiUrl: string;
            apiKey?: string | undefined;
            family?: string | undefined;
        }>, "many">>;
        blocks: z.ZodOptional<z.ZodObject<{
            confirmations: z.ZodNumber;
            reorgPeriod: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            estimateBlockTime: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }, {
            confirmations: number;
            reorgPeriod?: string | number | undefined;
            estimateBlockTime?: number | undefined;
        }>>;
        bypassBatchSimulation: z.ZodOptional<z.ZodBoolean>;
        chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        customGrpcUrls: z.ZodOptional<z.ZodString>;
        deployer: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }, {
            name: string;
            url?: string | undefined;
            email?: string | undefined;
        }>>;
        displayName: z.ZodOptional<z.ZodString>;
        displayNameShort: z.ZodOptional<z.ZodString>;
        domainId: z.ZodNumber;
        gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
        gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
        gnosisSafeApiKey: z.ZodOptional<z.ZodString>;
        grpcUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        index: z.ZodOptional<z.ZodObject<{
            from: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            from?: number | undefined;
        }, {
            from?: number | undefined;
        }>>;
        isTestnet: z.ZodOptional<z.ZodBoolean>;
        logoURI: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        nativeToken: z.ZodOptional<z.ZodObject<{
            name: z.ZodString;
            symbol: z.ZodString;
            decimals: z.ZodNumber;
            denom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }, {
            symbol: string;
            name: string;
            decimals: number;
            denom?: string | undefined;
        }>>;
        protocol: z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/utils").ProtocolType>, z.ZodString]>, import("@hyperlane-xyz/utils").ProtocolType, string>;
        restUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">>;
        rpcUrls: z.ZodArray<z.ZodObject<{
            http: z.ZodString;
            concurrency: z.ZodOptional<z.ZodNumber>;
            webSocket: z.ZodOptional<z.ZodString>;
            pagination: z.ZodOptional<z.ZodObject<{
                maxBlockRange: z.ZodOptional<z.ZodNumber>;
                minBlockNumber: z.ZodOptional<z.ZodNumber>;
                maxBlockAge: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }, {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            }>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxRequests: z.ZodNumber;
                baseRetryMs: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxRequests: number;
                baseRetryMs: number;
            }, {
                maxRequests: number;
                baseRetryMs: number;
            }>>;
            public: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }, {
            http: string;
            webSocket?: string | undefined;
            public?: boolean | undefined;
            concurrency?: number | undefined;
            pagination?: {
                maxBlockRange?: number | undefined;
                minBlockNumber?: number | undefined;
                maxBlockAge?: number | undefined;
            } | undefined;
            retry?: {
                maxRequests: number;
                baseRetryMs: number;
            } | undefined;
        }>, "many">;
        slip44: z.ZodOptional<z.ZodNumber>;
        technicalStack: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNativeEnum<typeof import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack>, z.ZodString]>, import("@hyperlane-xyz/sdk/metadata/chainMetadataTypes").ChainTechnicalStack, string>>;
        transactionOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        gasPrice: z.ZodOptional<z.ZodObject<{
            denom: z.ZodString;
            amount: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            denom: string;
            amount: string;
        }, {
            denom: string;
            amount: string;
        }>>;
    }, z.ZodTypeAny, "passthrough"> | undefined;
    addresses?: Record<string, string> | undefined;
}>;
export type UpdateChainParams = z.infer<typeof UpdateChainSchema> & {
    chainName: ChainName;
};
export declare const WarpRouteIdSchema: z.ZodString;
export type WarpRouteId = z.infer<typeof WarpRouteIdSchema>;
export type WarpRouteConfigMap = Record<WarpRouteId, WarpCoreConfig>;
export type WarpDeployConfigMap = Record<WarpRouteId, WarpRouteDeployConfig>;
export declare const AddWarpRouteConfigOptionsSchema: z.ZodUnion<[z.ZodObject<{
    symbol: z.ZodString;
}, "strip", z.ZodTypeAny, {
    symbol: string;
}, {
    symbol: string;
}>, z.ZodObject<{
    warpRouteId: z.ZodString;
}, "strip", z.ZodTypeAny, {
    warpRouteId: string;
}, {
    warpRouteId: string;
}>]>;
export type AddWarpRouteConfigOptions = z.infer<typeof AddWarpRouteConfigOptionsSchema>;
export type DeepPartial<T> = T extends object ? {
    [P in keyof T]?: DeepPartial<T[P]>;
} : T;
