import { ethers } from "ethers"; export declare function dump(header: string, info: any): void; declare class WrappedSigner extends ethers.Signer { readonly addressPromise: Promise; readonly provider: ethers.providers.Provider; readonly plugin: Plugin; constructor(addressPromise: Promise, signerFunc: () => Promise, plugin: Plugin); connect(provider?: ethers.providers.Provider): ethers.Signer; getAddress(): Promise; signMessage(message: string | ethers.utils.Bytes): Promise; populateTransaction(transactionRequest: ethers.providers.TransactionRequest): Promise; signTransaction(transactionRequest: ethers.providers.TransactionRequest): Promise; sendTransaction(transactionRequest: ethers.providers.TransactionRequest): Promise; unlock(): Promise; } export declare class ArgParser { readonly _args: Array; readonly _consumed: Array; constructor(args: Array); _finalizeArgs(): Array; _checkCommandIndex(): number; consumeFlag(name: string): boolean; consumeMultiOptions(names: Array): Array<{ name: string; value: string; }>; consumeOptions(name: string): Array; consumeOption(name: string): string; } export interface Help { name: string; help: string; } export interface PluginType { new (...args: any[]): Plugin; getHelp?: () => Help; getOptionHelp?: () => Array; } export declare abstract class Plugin { network: ethers.providers.Network; provider: ethers.providers.Provider; accounts: Array; mnemonicPassword: boolean; _xxxMnemonicPasswordHard: boolean; gasLimit: ethers.BigNumber; gasPrice: ethers.BigNumber; nonce: number; data: string; yes: boolean; constructor(); static getHelp(): Help; static getOptionHelp(): Array; prepareOptions(argParser: ArgParser): Promise; prepareArgs(args: Array): Promise; run(): Promise; getAddress(addressOrName: string, message?: string, allowZero?: boolean): Promise; dump(header: string, info: any): void; throwUsageError(message?: string): never; throwError(message: string): never; } export declare type Options = { account?: boolean; provider?: boolean; transaction?: boolean; }; export declare class CLI { readonly defaultCommand: string; readonly plugins: { [command: string]: PluginType; }; readonly standAlone: PluginType; readonly options: Options; constructor(defaultCommand?: string, options?: Options); static getAppName(): string; addPlugin(command: string, plugin: PluginType): void; setPlugin(plugin: PluginType): void; showUsage(message?: string, status?: number): never; run(args: Array): Promise; } export {};