import { TaskQueue } from "mvc-common-toolkit";
import { Signer } from "ethers";
import { TransactionHistoryStorage, IWeb3Gateway, SignerPicker } from "../common/interfaces";
import { ContractModel } from "../models";
export declare class BlockchainTransactionRegistry {
    protected transactionStorage: TransactionHistoryStorage;
    protected taskQueue: TaskQueue;
    protected _providerMap: Map<string, IWeb3Gateway>;
    private logger;
    protected signerPicker: SignerPicker;
    constructor(transactionStorage: TransactionHistoryStorage, signerPicker: SignerPicker, taskQueue: TaskQueue);
    sendContractTransaction(contract: ContractModel, method: string, params: any[], options?: {
        signerPicker?: SignerPicker;
        timeoutInMs?: number;
        minGas?: string;
    }): Promise<any>;
    protected reconcileSignerLastTx(signer: Signer, signerAddress: string): Promise<{
        nextNonce: string;
        isOverride: boolean;
    }>;
}
