import { Signer } from 'ethers';
import { ChainName, ChainSubmissionStrategy } from '@hyperlane-xyz/sdk';
import { Address } from '@hyperlane-xyz/utils';
export interface SignerConfig {
    privateKey: string;
    address?: Address;
    extraParams?: Record<string, any>;
}
export interface IMultiProtocolSigner {
    getSignerConfig(chain: ChainName): Promise<SignerConfig> | SignerConfig;
    getSigner(config: SignerConfig): Signer;
}
export declare abstract class BaseMultiProtocolSigner implements IMultiProtocolSigner {
    protected config: ChainSubmissionStrategy;
    constructor(config: ChainSubmissionStrategy);
    abstract getSignerConfig(chain: ChainName): Promise<SignerConfig>;
    abstract getSigner(config: SignerConfig): Signer;
}
//# sourceMappingURL=BaseMultiProtocolSigner.d.ts.map