/// <reference types="node" />
import { MessageTypes, TypedMessage } from '@metamask/eth-sig-util';
import { JsonRpcSigner } from '@ethersproject/providers';
import { Wallet } from 'ethers';
import { CoinType } from '../const';
import { TxsSignedOrUnSigned } from '../fetchers/SubAccountAPI';
import { TxsWithMMJsonSignedOrUnSigned } from '../fetchers/RegisterAPI.type';
export declare function mmJsonHashAndChainIdHex(typedData: TypedMessage<any>, chainId: number): string;
export interface SendTransactionParam {
    to: string;
    value: string;
    data: string;
}
export declare abstract class BitSigner {
    signer: JsonRpcSigner | Wallet;
    abstract signTypedData(data: TypedMessage<MessageTypes>): Promise<string>;
    abstract sendTransaction(sendTransactionParam: SendTransactionParam): Promise<string>;
    signPersonal(data: string | Buffer): Promise<string>;
    getAddress(): Promise<string>;
    getChainId(): Promise<number>;
    getCoinType(): Promise<CoinType>;
    signData(data: string | Buffer | object, isEIP712?: boolean): Promise<string>;
    signTxList(txs: TxsSignedOrUnSigned): Promise<TxsSignedOrUnSigned>;
    signTxList(txs: TxsWithMMJsonSignedOrUnSigned): Promise<TxsWithMMJsonSignedOrUnSigned>;
}
