import { providers, Signer } from 'ethers';
import { ChainTypes, DefaultSigners, LoginRequest, WalletDescriptor, WalletTypes } from '../../common/types';
import { GenericWallet } from '../wallets/interface';
import { BrowserWalletSignAndSendTransactionParams, BrowserWalletSignInParams } from '../wallets/near/interface';
import GlobalConfigService from './globalConfigService';
import { OverlayService } from './overlayService';
import { SessionService } from './sessionService';
export declare class WalletService {
    private _globalConfigService;
    private _overlayService;
    sessionService: SessionService;
    private _map;
    private _signersByApp;
    constructor(_globalConfigService: GlobalConfigService, _overlayService: OverlayService);
    connectWallet(chain: ChainTypes, wallet: WalletTypes, params?: any): Promise<void>;
    disconnectWallet(chain: ChainTypes, wallet: WalletTypes): Promise<void>;
    getWalletDescriptors(): Promise<WalletDescriptor[]>;
    eth_getSignerFor(app: string | DefaultSigners, chain: ChainTypes): Promise<Signer>;
    getWalletFor(app: string | DefaultSigners): Promise<{
        [chain: string]: string;
    }>;
    getDefaultWalletFor(appOrSessionId: string | DefaultSigners, chain: ChainTypes, isConnected?: boolean): Promise<string>;
    setWalletFor(walletType: WalletTypes, app: string | DefaultSigners, chain: ChainTypes): Promise<void>;
    unsetWalletFor(app: string | DefaultSigners, chain: ChainTypes): Promise<void>;
    prepareWalletFor(app: string | DefaultSigners, chain: ChainTypes, cfg: {
        username: string;
        domainId: number;
        fullname?: string;
        img?: string;
    }, request: LoginRequest, tabId: number): Promise<void>;
    getAddress(app: string | DefaultSigners, chain: ChainTypes): Promise<string>;
    eth_sendTransactionOutHash(app: string | DefaultSigners, chain: ChainTypes, transaction: providers.TransactionRequest): Promise<string>;
    eth_sendCustomRequest(app: string | DefaultSigners, chain: ChainTypes, method: string, params: any[]): Promise<any>;
    eth_sendCustomRequestToWallet(chain: ChainTypes, walletType: WalletTypes, method: string, params: any[]): Promise<any>;
    eth_waitTransaction(app: string | DefaultSigners, chain: ChainTypes, txHash: string, confirmations?: number): Promise<providers.TransactionReceipt>;
    near_sendCustomRequest(app: string | DefaultSigners, network: string, method: string, params: any[]): Promise<any>;
    near_getAccount(app: string | DefaultSigners, chain: ChainTypes.NEAR_MAINNET | ChainTypes.NEAR_TESTNET): Promise<import("../wallets/near/near/customConnectedWalletAccount").CustomConnectedWalletAccount>;
    near_signIn(app: string | DefaultSigners, chain: ChainTypes.NEAR_MAINNET | ChainTypes.NEAR_TESTNET, params: BrowserWalletSignInParams): Promise<import("@near-wallet-selector/core").Account[]>;
    near_signOut(app: string | DefaultSigners, chain: ChainTypes.NEAR_MAINNET | ChainTypes.NEAR_TESTNET): Promise<void>;
    near_getAccounts(app: string | DefaultSigners, chain: ChainTypes.NEAR_MAINNET | ChainTypes.NEAR_TESTNET): Promise<import("@near-wallet-selector/core").Account[]>;
    near_signAndSendTransaction(app: string | DefaultSigners, chain: ChainTypes.NEAR_MAINNET | ChainTypes.NEAR_TESTNET, params: BrowserWalletSignAndSendTransactionParams): Promise<void | import("@near-js/types").FinalExecutionOutcome>;
    near_signAndSendTransactions(app: string | DefaultSigners, chain: ChainTypes.NEAR_MAINNET | ChainTypes.NEAR_TESTNET, params: any): Promise<void>;
    getGenericWallet(chain: ChainTypes, wallet: WalletTypes): Promise<GenericWallet>;
    private _getInternalSignerFor;
    private _pairSignerFor;
    private _getWalletsArray;
    private _getWalletsMap;
    private _getChainParameters;
}
