import EventEmitter from 'eventemitter3'; import { PublicKey, Transaction } from '@solana/web3.js'; export default abstract class WalletAdapter extends EventEmitter { abstract get publicKey(): PublicKey | null; abstract get connected(): boolean; abstract connect(): Promise; abstract disconnect(): Promise; abstract signTransaction(transaction: Transaction): Promise; abstract signAllTransactions(transactions: Transaction[]): Promise; abstract signMessage(data: Uint8Array, display: 'hex' | 'utf8'): Promise; }