import { z } from 'zod';
import { AggregationIsmConfig, IsmConfig, IsmType, MultisigIsmConfig } from '@hyperlane-xyz/sdk';
import { CommandContext } from '../context/types.js';
export declare function parseIsmConfig(filePath: string): z.SafeParseReturnType<Record<string, string | {
    type: IsmType.TEST_ISM;
} | {
    type: IsmType.OP_STACK;
    origin: string;
    nativeBridge: string;
} | {
    type: IsmType.TRUSTED_RELAYER;
    relayer: string;
} | {
    type: IsmType.CCIP;
    originChain: string;
} | import("@hyperlane-xyz/sdk").RoutingIsmConfig | AggregationIsmConfig | {
    type: IsmType.ARB_L2_TO_L1;
    bridge: string;
} | ({
    owner: string;
    paused: boolean;
    ownerOverrides?: Record<string, string> | undefined;
} & {
    type: IsmType.PAUSABLE;
}) | ({
    validators: string[];
    threshold: number;
} & {
    type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG;
}) | ({
    validators: {
        signingAddress: string;
        weight: number;
    }[];
    thresholdWeight: number;
} & {
    type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG;
})>, Record<string, string | {
    type: IsmType.TEST_ISM;
} | {
    type: IsmType.OP_STACK;
    origin: string;
    nativeBridge: string;
} | {
    type: IsmType.TRUSTED_RELAYER;
    relayer: string;
} | {
    type: IsmType.CCIP;
    originChain: string;
} | import("@hyperlane-xyz/sdk").RoutingIsmConfig | AggregationIsmConfig | {
    type: IsmType.ARB_L2_TO_L1;
    bridge: string;
} | ({
    owner: string;
    paused: boolean;
    ownerOverrides?: Record<string, string> | undefined;
} & {
    type: IsmType.PAUSABLE;
}) | ({
    validators: string[];
    threshold: number;
} & {
    type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG;
}) | ({
    validators: {
        signingAddress: string;
        weight: number;
    }[];
    thresholdWeight: number;
} & {
    type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG;
})>>;
export declare function readIsmConfig(filePath: string): Record<string, string | {
    type: IsmType.TEST_ISM;
} | {
    type: IsmType.OP_STACK;
    origin: string;
    nativeBridge: string;
} | {
    type: IsmType.TRUSTED_RELAYER;
    relayer: string;
} | {
    type: IsmType.CCIP;
    originChain: string;
} | import("@hyperlane-xyz/sdk").RoutingIsmConfig | AggregationIsmConfig | {
    type: IsmType.ARB_L2_TO_L1;
    bridge: string;
} | ({
    owner: string;
    paused: boolean;
    ownerOverrides?: Record<string, string> | undefined;
} & {
    type: IsmType.PAUSABLE;
}) | ({
    validators: string[];
    threshold: number;
} & {
    type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG;
}) | ({
    validators: {
        signingAddress: string;
        weight: number;
    }[];
    thresholdWeight: number;
} & {
    type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG;
})>;
export declare function createAdvancedIsmConfig(context: CommandContext): Promise<IsmConfig>;
export declare const createMultisigConfig: (ismType: MultisigIsmConfig['type']) => Promise<MultisigIsmConfig>;
export declare const createTrustedRelayerConfig: (...args: any[]) => Promise<{
    type: IsmType.TRUSTED_RELAYER;
    relayer: string;
}>;
export declare const createAggregationConfig: (...args: any[]) => Promise<AggregationIsmConfig>;
export declare const createRoutingConfig: (...args: any[]) => Promise<string | {
    type: IsmType.TEST_ISM;
} | {
    type: IsmType.OP_STACK;
    origin: string;
    nativeBridge: string;
} | {
    type: IsmType.TRUSTED_RELAYER;
    relayer: string;
} | {
    type: IsmType.CCIP;
    originChain: string;
} | import("@hyperlane-xyz/sdk").RoutingIsmConfig | AggregationIsmConfig | {
    type: IsmType.ARB_L2_TO_L1;
    bridge: string;
} | ({
    owner: string;
    paused: boolean;
    ownerOverrides?: Record<string, string> | undefined;
} & {
    type: IsmType.PAUSABLE;
}) | ({
    validators: string[];
    threshold: number;
} & {
    type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG;
}) | ({
    validators: {
        signingAddress: string;
        weight: number;
    }[];
    thresholdWeight: number;
} & {
    type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG;
})>;
export declare const createFallbackRoutingConfig: (...args: any[]) => Promise<string | {
    type: IsmType.TEST_ISM;
} | {
    type: IsmType.OP_STACK;
    origin: string;
    nativeBridge: string;
} | {
    type: IsmType.TRUSTED_RELAYER;
    relayer: string;
} | {
    type: IsmType.CCIP;
    originChain: string;
} | import("@hyperlane-xyz/sdk").RoutingIsmConfig | AggregationIsmConfig | {
    type: IsmType.ARB_L2_TO_L1;
    bridge: string;
} | ({
    owner: string;
    paused: boolean;
    ownerOverrides?: Record<string, string> | undefined;
} & {
    type: IsmType.PAUSABLE;
}) | ({
    validators: string[];
    threshold: number;
} & {
    type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG;
}) | ({
    validators: {
        signingAddress: string;
        weight: number;
    }[];
    thresholdWeight: number;
} & {
    type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG;
})>;
export declare const createAmountRoutingIsmConfig: (...args: any[]) => Promise<string | {
    type: IsmType.TEST_ISM;
} | {
    type: IsmType.OP_STACK;
    origin: string;
    nativeBridge: string;
} | {
    type: IsmType.TRUSTED_RELAYER;
    relayer: string;
} | {
    type: IsmType.CCIP;
    originChain: string;
} | import("@hyperlane-xyz/sdk").RoutingIsmConfig | AggregationIsmConfig | {
    type: IsmType.ARB_L2_TO_L1;
    bridge: string;
} | ({
    owner: string;
    paused: boolean;
    ownerOverrides?: Record<string, string> | undefined;
} & {
    type: IsmType.PAUSABLE;
}) | ({
    validators: string[];
    threshold: number;
} & {
    type: IsmType.MERKLE_ROOT_MULTISIG | IsmType.MESSAGE_ID_MULTISIG | IsmType.STORAGE_MERKLE_ROOT_MULTISIG | IsmType.STORAGE_MESSAGE_ID_MULTISIG;
}) | ({
    validators: {
        signingAddress: string;
        weight: number;
    }[];
    thresholdWeight: number;
} & {
    type: IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG | IsmType.WEIGHTED_MESSAGE_ID_MULTISIG;
})>;
//# sourceMappingURL=ism.d.ts.map