import { Signer } from 'ethers';
import { Logger } from 'pino';
import { ChainName, ChainSubmissionStrategy, MultiProvider } from '@hyperlane-xyz/sdk';
import { IMultiProtocolSigner } from './BaseMultiProtocolSigner.js';
export interface MultiProtocolSignerOptions {
    logger?: Logger;
    key?: string;
}
/**
 * @title MultiProtocolSignerManager
 * @dev Context manager for signers across multiple protocols
 */
export declare class MultiProtocolSignerManager {
    protected readonly submissionStrategy: ChainSubmissionStrategy;
    protected readonly chains: ChainName[];
    protected readonly multiProvider: MultiProvider;
    protected readonly options: MultiProtocolSignerOptions;
    protected readonly signerStrategies: Map<ChainName, IMultiProtocolSigner>;
    protected readonly signers: Map<ChainName, Signer>;
    readonly logger: Logger;
    constructor(submissionStrategy: ChainSubmissionStrategy, chains: ChainName[], multiProvider: MultiProvider, options?: MultiProtocolSignerOptions);
    /**
     * @notice Sets up chain-specific signer strategies
     */
    protected initializeStrategies(): void;
    /**
     * @dev Configures signers for EVM chains in MultiProvider
     */
    getMultiProvider(): Promise<MultiProvider>;
    /**
     * @notice Creates signer for specific chain
     */
    initSigner(chain: ChainName): Promise<Signer>;
    /**
     * @notice Creates signers for all chains
     */
    initAllSigners(): Promise<typeof this.signers>;
    /**
     * @notice Resolves all chain configurations
     */
    private resolveAllConfigs;
    /**
     * @notice Resolves single chain configuration
     */
    private resolveConfig;
    /**
     * @notice Gets private key from strategy
     */
    private extractPrivateKey;
}
//# sourceMappingURL=MultiProtocolSignerManager.d.ts.map