import type { AminoSignResponse, Keplr, StdSignDoc } from '@keplr-wallet/types';
import type { OfflineDirectSigner } from '@cosmjs/proto-signing';
import type { TxRaw } from '@routerprotocol/chain-api/cosmos/tx/v1beta1/tx_pb';
import { ChainId, CosmosChainId, TestnetCosmosChainId } from '../../..';
export declare class KeplrWallet {
    private chainId;
    constructor(chainId: CosmosChainId | TestnetCosmosChainId | ChainId);
    static experimentalSuggestChainWithChainData(chainData: any): Promise<void>;
    getKeplrWallet(): Promise<Keplr>;
    experimentalSuggestChain(): Promise<void>;
    getAccounts(): Promise<readonly import("@keplr-wallet/types").AccountData[]>;
    getKey(): Promise<{
        name: string;
        algo: string;
        isNanoLedger: boolean;
        pubKey: Uint8Array;
        address: Uint8Array;
        bech32Address: string;
    }>;
    getOfflineSigner(): Promise<OfflineDirectSigner>;
    /**
     * This method is used to broadcast a transaction to the network.
     * Since it uses the `Sync` mode, it will not wait for the transaction to be included in a block,
     * so we have to make sure the transaction is included in a block after its broadcasted
     *
     * @param txRaw - raw transaction to broadcast
     * @returns tx hash
     */
    broadcastTx(txRaw: TxRaw): Promise<string>;
    /**
     * This method is used to broadcast a transaction to the network.
     * Since it uses the `Block` mode, and it will wait for the transaction to be included in a block,
     *
     * @param txRaw - raw transaction to broadcast
     * @returns tx hash
     */
    broadcastTxBlock(txRaw: TxRaw): Promise<string>;
    waitTxBroadcasted(txHash: string): Promise<string>;
    signEIP712CosmosTx({ eip712, signDoc, }: {
        eip712: any;
        signDoc: StdSignDoc;
    }): Promise<AminoSignResponse>;
    getChainEndpoints(): Promise<{
        rpc: string;
        rest: string;
    }>;
    checkChainIdSupport(): Promise<boolean>;
    private getKeplr;
}
