import { SignClient } from "@walletconnect/sign-client"; import type { SessionTypes } from "@walletconnect/types"; import { type SupportedChain, type UnsignedTx } from "../types/index.js"; /** * EVM namespace requested when proposing a session. We deliberately omit * `personal_sign` and `eth_signTypedData_v4` — no tool in this server produces * either, so requesting them would be an over-broad capability grant. Blind * typed-data signing is the canonical Permit2 / off-chain-order phishing * surface; scoping the session away from it means a compromised process can't * issue those requests against a live pairing without reconnecting (which the * user would see prompted on their device). */ export declare const REQUIRED_NAMESPACES: { eip155: { methods: string[]; chains: string[]; events: string[]; }; }; export declare function isPeerUnreachable(): boolean; export declare function getSignClient(): Promise>; export interface PairResult { uri: string; approval: Promise; } /** Create a new pairing + session proposal. The returned URI is what the user scans in Ledger Live. */ export declare function initiatePairing(): Promise; export declare function getCurrentSession(): SessionTypes.Struct | null; /** * Return the deduplicated list of EVM addresses exposed by the connected * wallet across all chain namespaces. WalletConnect advertises accounts as * `eip155::
` — the same address typically appears once per * chain the wallet has exposed, so a flat list of raw entries looks like * duplicates from the agent's perspective. Callers that care which chains an * address is exposed on should use `getConnectedAccountsDetailed`. */ export declare function getConnectedAccounts(): Promise<`0x${string}`[]>; /** * Return per-address chain exposure. Addresses are deduplicated; `chainIds` * lists every eip155 chainId the address was advertised for, and `chains` * maps those to the server's SupportedChain names where recognized. */ export declare function getConnectedAccountsDetailed(): Promise<{ address: `0x${string}`; chainIds: number[]; chains: SupportedChain[]; }[]>; /** Send an `eth_sendTransaction` request. Ledger Live shows it, user signs on device, we get tx hash back. */ export declare function requestSendTransaction(tx: UnsignedTx): Promise<`0x${string}`>; export declare function disconnect(): Promise;