import type { SupportedChain } from "../types/index.js"; export interface SessionAccount { address: `0x${string}`; /** Supported chains this address is exposed on (mapped from chainIds). */ chains: SupportedChain[]; /** Every eip155 chainId advertised for this address, including ones the server does not support. */ chainIds: number[]; } export interface SessionStatus { paired: boolean; /** * Deduplicated list of addresses. An address that appears on multiple chains * shows up once here; use `accountDetails` for the per-chain breakdown. */ accounts: `0x${string}`[]; /** Per-address chain exposure — addresses paired with the networks they're advertised on. */ accountDetails: SessionAccount[]; topic?: string; expiresAt?: number; /** Peer-advertised app name (e.g. "Ledger Live"). Self-reported — NOT a trusted identity. */ wallet?: string; /** Peer-advertised URL. Self-reported — NOT a trusted identity. */ peerUrl?: string; /** Peer-advertised description. Self-reported — NOT a trusted identity. */ peerDescription?: string; /** * Guidance for the agent: WalletConnect peer metadata is self-reported and any * app can claim to be "Ledger Live". Surface `wallet`/`peerUrl` to the user * before sending a tx they can't physically verify on the Ledger device. */ peerTrustWarning: string; /** * Set when a local session record exists but the peer did not respond to the * liveness ping on restore. The session may still be valid (peer just * offline) or dead (relay didn't deliver a rejection in time) — callers * should treat it as unverified and avoid submitting transactions until the * peer comes back online or the user re-pairs. */ peerUnreachable?: boolean; } export declare const PEER_TRUST_WARNING: string; export declare function getSessionStatus(): Promise;