import type { PublicKey, SendOptions, Transaction, TransactionSignature, VersionedTransaction } from '@solana/web3.js'; export interface GilderEvent { connect(...args: unknown[]): unknown; disconnect(...args: unknown[]): unknown; accountChanged(...args: unknown[]): unknown; } export interface GilderEventEmitter { on(event: E, listener: GilderEvent[E], context?: any): void; off(event: E, listener: GilderEvent[E], context?: any): void; } export interface Gilder extends GilderEventEmitter { publicKey: PublicKey | null; connect(options?: { onlyIfTrusted?: boolean }): Promise<{ publicKey: PublicKey }>; disconnect(): Promise; signAndSendTransaction( transaction: T, options?: SendOptions ): Promise<{ signature: TransactionSignature }>; signTransaction(transaction: T): Promise; signAllTransactions(transactions: T[]): Promise; signMessage(message: Uint8Array): Promise<{ signature: Uint8Array }>; }