/// <reference types="@vechain/connex" />
/// <reference types="@vechain/connex.driver" />
import { DriverNoVendor } from './driver-no-vendor';
import { Net, Wallet } from './interfaces';
/** class fully implements Connex.Driver */
export declare class Driver extends DriverNoVendor {
    private readonly wallet?;
    /**
     * create driver instance
     * it will fetch config(genesis, head) via net as construction params
     * @param net
     * @param wallet
     */
    static connect(net: Net, wallet?: Wallet): Promise<Driver>;
    /** handler to receive txs committed */
    onTxCommit?: (txObj: TxObject) => void;
    /** params for tx construction */
    txParams: {
        expiration: number;
        gasPriceCoef: number;
    };
    constructor(net: Net, genesis: Connex.Thor.Block, initialHead?: Connex.Thor.Status['head'], wallet?: Wallet | undefined);
    signTx(msg: Connex.Driver.SignTxArg, option: Connex.Driver.SignTxOption): Promise<Connex.Driver.SignTxResult>;
    signCert(msg: Connex.Driver.SignCertArg, options: Connex.Driver.SignCertOption): Promise<Connex.Driver.SignCertResult>;
    isAddressOwned(addr: string): Promise<boolean>;
    private findKey;
    private sendTx;
    private estimateGas;
}
export interface TxObject {
    id: string;
    raw: string;
    resend(): Promise<void>;
}
