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; }