import { DescentClass } from '../index';
import { TransactionReceipt, TransactionRequest } from 'ethers';
export interface TransactionCallbacks {
    onReceipt?: (receipt: TransactionReceipt) => void;
    onConfirmation?: (confirmationNumber: number, receipt: TransactionReceipt | null, latestBlockHash?: string) => void;
}
export declare class Transaction {
    private descent;
    constructor(descent: DescentClass);
    /**
     * Send transaction and get transaction hash.
     */
    send: (transactionConfig: TransactionRequest, transactionCallbacks?: TransactionCallbacks) => Promise<string>;
    /**
     * Get transaction Nonce.
     *
     * @param transactionHash Transaction hash to get nonce.
     */
    getNonce: (transactionHash: string) => Promise<number>;
    /**
     * Get transaction count.
     *
     * @param address Address to get transaction count for.
     * @returns Transaction count for address
     */
    getTransactionCount: (address: string) => Promise<number>;
}
