import { EventEmitter } from 'eventemitter3'; import AccountRpc from '../account/Rpc.js'; import { Network, NetworkToSelect } from './rpc/types.js'; import { SUBSCRIPTION_TYPES } from './schema.js'; import BrowserConnection from './connection/Browser.js'; interface EventsBase { accountsChange: (accounts: AccountRpc[]) => void; disconnect: (p: any) => void; } export default abstract class WalletConnectorFrameBase extends EventEmitter { #private; /** * Is connected to wallet */ get isConnected(): boolean; /** * Accounts provided by wallet over subscription */ get accounts(): AccountRpc[]; protected constructor(); protected abstract _updateNetwork(params: Network): void; static _connect(name: string, connection: BrowserConnection, connector: WalletConnectorFrameBase, connectNode: boolean): Promise; /** * Disconnect from wallet */ disconnect(): void; /** * Request accounts from wallet */ getAccounts(): Promise; /** * Subscribe for wallet accounts, get account updates adding handler to `accountsChange` event * @param type - Subscription type * @param value - Should be one of 'current' (the selected account), 'connected' (all) * @returns Accounts from wallet */ subscribeAccounts(type: SUBSCRIPTION_TYPES, value: 'current' | 'connected'): Promise; /** * Ask wallet to select a network */ askToSelectNetwork(network: NetworkToSelect): Promise; } export {};