import { Connection, PublicKey, type SendOptions } from '@solana/web3.js'; import type { SessionTypes } from '@walletconnect/types'; import UniversalProvider from '@walletconnect/universal-provider'; import { type RequestArguments } from '@reown/appkit'; import { type CaipNetwork } from '@reown/appkit-common'; import { WalletConnectConnector } from '@reown/appkit-controllers'; import type { AnyTransaction, Provider, ProviderEventEmitterMethods } from '@reown/appkit-utils/solana'; export type WalletConnectProviderConfig = { provider: UniversalProvider; chains: CaipNetwork[]; getActiveChain: () => CaipNetwork | undefined; }; export declare class SolanaWalletConnectProvider extends WalletConnectConnector<'solana'> implements Omit, ProviderEventEmitterMethods { #private; private readonly getActiveChain; private readonly eventEmitter; readonly emit: (event: E, data: ProviderEventEmitterMethods.EventParams[E]) => void; readonly on: (event: E, listener: (data: ProviderEventEmitterMethods.EventParams[E]) => void) => void; readonly removeListener: (event: E, listener: (data: ProviderEventEmitterMethods.EventParams[E]) => void) => void; constructor({ provider, chains, getActiveChain }: WalletConnectProviderConfig); get session(): SessionTypes.Struct | undefined; get chains(): CaipNetwork[]; get icon(): string | undefined; get version(): "1.0.0"; get publicKey(): PublicKey | undefined; connect(): Promise; disconnect(): Promise; signMessage(message: Uint8Array): Promise>; signTransaction(transaction: T): Promise; signAndSendTransaction(transaction: T, sendOptions?: SendOptions): Promise; sendTransaction(transaction: AnyTransaction, connection: Connection, options?: SendOptions): Promise; signAllTransactions(transactions: T): Promise; request(args: RequestArguments): Promise; getAccounts(): Promise<{ namespace: "solana"; address: string; type: "eoa"; }[]>; setDefaultChain(chainId: string): void; private internalRequest; private get sessionChains(); private serializeTransaction; private getAccount; private getRawRPCParams; private checkIfMethodIsSupported; } export declare namespace SolanaWalletConnectProvider { type Request = { params: Params; returns: Result; }; type RequestMethods = { solana_signMessage: Request<{ message: string; pubkey: string; }, { signature: string; }>; solana_signTransaction: Request<{ transaction: string; pubkey: string; }, { signature: string; } | { transaction: string; }>; solana_signAndSendTransaction: Request<{ transaction: string; pubkey: string; sendOptions?: SendOptions; }, { signature: string; }>; solana_signAllTransactions: Request<{ transactions: string[]; }, { transactions: string[]; }>; }; type RequestMethod = keyof RequestMethods; type Account = { address: string; publicKey: Uint8Array; }; }