import type { WalletKitTypes } from '@reown/walletkit'; import type { SessionTypes } from '@walletconnect/types'; import type { Transaction, Query, AccountId, Wallet as HederaWallet } from '@hiero-ledger/sdk'; import type { HederaJsonRpcMethod, HederaChainId } from '../shared'; import type Provider from './provider'; export interface HederaNativeWallet { buildAndApproveSession(accounts: string[], { id, params }: WalletKitTypes.SessionProposal): Promise; parseSessionRequest(event: WalletKitTypes.SessionRequest, shouldThrow: boolean): { method: HederaJsonRpcMethod; chainId: HederaChainId; id: number; topic: string; body?: Transaction | Query | string | Uint8Array | undefined; accountId?: AccountId; }; executeSessionRequest(event: WalletKitTypes.SessionRequest, hederaWallet: HederaWallet): Promise; rejectSessionRequest(event: WalletKitTypes.SessionRequest, error: { code: number; message: string; }): Promise; getHederaWallet(chainId: HederaChainId, accountId: AccountId | string, privateKey: string, _provider?: Provider): HederaWallet; [HederaJsonRpcMethod.GetNodeAddresses](id: number, topic: string, _: any, // ignore this param to be consistent call signature with other functions signer: HederaWallet): Promise; [HederaJsonRpcMethod.ExecuteTransaction](id: number, topic: string, body: Transaction, signer: HederaWallet): Promise; [HederaJsonRpcMethod.SignMessage](id: number, topic: string, body: string, signer: HederaWallet): Promise; [HederaJsonRpcMethod.SignAndExecuteQuery](id: number, topic: string, body: Query, signer: HederaWallet): Promise; [HederaJsonRpcMethod.SignAndExecuteTransaction](id: number, topic: string, body: Transaction, signer: HederaWallet): Promise; [HederaJsonRpcMethod.SignTransaction](id: number, topic: string, body: Uint8Array, signer: HederaWallet): Promise; } export interface HederaEvmCompatibleWallet { }