import { IRegistry } from '@hyperlane-xyz/registry';
import { ChainMap, ChainMetadata, ChainName } from '@hyperlane-xyz/sdk';
import { CommandContext, ContextSettings } from './types.js';
export declare function contextMiddleware(argv: Record<string, any>): Promise<void>;
export declare function signerMiddleware(argv: Record<string, any>): Promise<Record<string, any>>;
/**
 * Retrieves context for the user-selected command
 * @returns context for the current command
 */
export declare function getContext({ registryUris, key, requiresKey, skipConfirmation, disableProxy, strategyPath, authToken, }: ContextSettings): Promise<CommandContext>;
/**
 * Retrieves dry-run context for the user-selected command
 * @returns dry-run context for the current command
 */
export declare function getDryRunContext({ registryUris, key, fromAddress, skipConfirmation, disableProxy, authToken, }: ContextSettings, chain?: ChainName): Promise<CommandContext>;
/**
 * Requests and saves Block Explorer API keys for the specified chains, prompting the user if necessary.
 *
 * @param chains - The list of chain names to request API keys for.
 * @param chainMetadata - The chain metadata, used to determine if an API key is already configured.
 * @param registry - The registry used to update the chain metadata with the new API key.
 * @returns A mapping of chain names to their API keys.
 */
export declare function requestAndSaveApiKeys(chains: ChainName[], chainMetadata: ChainMap<ChainMetadata>, registry: IRegistry): Promise<ChainMap<string>>;
//# sourceMappingURL=context.d.ts.map