import { AccountAddress, ChainId, EthereumChainId } from '../../../../';
import type { DirectSignResponse } from '@cosmjs/proto-signing';
import { TxRaw } from '@routerprotocol/chain-api/cosmos/tx/v1beta1/tx_pb';
import { ConcreteWalletStrategy, onAccountChangeCallback, onChainIdChangeCallback } from '../../types';
import BaseConcreteStrategy from './Base';
import { WalletDeviceType } from '../../../types/enums';
import { Msgs } from '../../../../core';
import { TxToSend } from '../../../../tx-ts/ethermint/types';
export default class Keplr extends BaseConcreteStrategy implements ConcreteWalletStrategy {
    private keplrWallet;
    constructor(args: {
        chainId: ChainId;
    });
    simulateTransaction(_signedTx: TxToSend, _nodeUrl: string): Promise<any>;
    broadcastTransaction(_signedTx: TxToSend, _nodeUrl: string): Promise<any>;
    simulateSignAndBroadcast(_args: {
        ethChainId: string;
        cosmosChainId: string;
        txMsg: Msgs;
        nodeUrl: string;
        memo?: string;
    }): Promise<any>;
    onAccountChange?(_callback: onAccountChangeCallback): void;
    onChainIdChange?(_callback: onChainIdChangeCallback): void;
    cancelOnChainIdChange?(): void;
    cancelOnAccountChange?(): void;
    cancelAllEvents?(): void;
    disconnect?(): Promise<void>;
    getWalletDeviceType(): Promise<WalletDeviceType>;
    getAddresses(): Promise<string[]>;
    confirm(address: AccountAddress): Promise<string>;
    sendEthereumTransaction(_transaction: unknown, _options: {
        address: AccountAddress;
        ethereumChainId: EthereumChainId;
    }): Promise<string>;
    sendTransaction(transaction: DirectSignResponse | TxRaw, _options: {
        address: AccountAddress;
        chainId: ChainId;
    }): Promise<string>;
    /** @deprecated */
    signTransaction(transaction: {
        txRaw: TxRaw;
        accountNumber: number;
        chainId: string;
    }, routerAddress: AccountAddress): Promise<DirectSignResponse>;
    signCosmosTransaction(transaction: {
        txRaw: TxRaw;
        accountNumber: number;
        chainId: string;
    }, routerAddress: AccountAddress): Promise<DirectSignResponse>;
    signEip712TypedData(_transaction: string, _address: AccountAddress): Promise<string>;
    getNetworkId(): Promise<string>;
    getChainId(): Promise<string>;
    getEthereumTransactionReceipt(_txHash: string): Promise<string>;
    getPubKey(): Promise<string>;
    private getKeplrWallet;
}
