/// <reference types="@meterio/flex" />
import { DriverNoVendor } from './driver-no-vendor';
import { Net, Wallet } from './interfaces';
/** class fully implements Flex.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: Flex.Meter.Block, initialHead?: Flex.Meter.Status['head'], wallet?: Wallet | undefined);
    signTx(msg: Flex.Driver.SignTxArg, option: Flex.Driver.SignTxOption): Promise<Flex.Driver.SignTxResult>;
    signCert(msg: Flex.Driver.SignCertArg, options: Flex.Driver.SignCertOption): Promise<Flex.Driver.SignCertResult>;
    isAddressOwned(addr: string): Promise<boolean>;
    private findKey;
    private sendTx;
    private estimateGas;
}
export interface TxObject {
    id: string;
    raw: string;
    resend(): Promise<void>;
}
