import type { Chain } from "../../../chains/types.js"; import type { ThirdwebClient } from "../../../client/client.js"; import type { Prettify } from "../../../utils/type-utils.js"; import type { Wallet } from "../../interfaces/wallet.js"; import { handleSendRawTransactionRequest } from "./request-handlers/send-raw-transaction.js"; import { handleSendTransactionRequest } from "./request-handlers/send-transaction.js"; import { handleSignRequest } from "./request-handlers/sign.js"; import { handleSignTransactionRequest } from "./request-handlers/sign-transaction.js"; import { handleSignTypedDataRequest } from "./request-handlers/sign-typed-data.js"; import { handleSwitchChain } from "./request-handlers/switch-chain.js"; import type { WalletConnectAddEthereumChainRequestParams, WalletConnectClient, WalletConnectConfig, WalletConnectRequestHandlers, WalletConnectSession } from "./types.js"; type CreateWalletConnectClientOptions = Prettify void; /** * Callback triggered whenever a session is disconnected. */ onDisconnect?: (session: WalletConnectSession) => void; /** * Callback for handling errors. */ onError?: (error: Error) => void; }>; type CreateWalletConnectSessionOptions = { /** * The WalletConnect client returned from `createWalletConnectClient` */ walletConnectClient: WalletConnectClient; /** * The WalletConnect session URI retrieved from the application to connect with. */ uri: string; }; export declare const clearWalletConnectClientCache: () => void; /** * Default request handlers for WalletConnect requests. */ export declare const DefaultWalletConnectRequestHandlers: { eth_sendRawTransaction: typeof handleSendRawTransactionRequest; eth_sendTransaction: typeof handleSendTransactionRequest; eth_sign: typeof handleSignRequest; eth_signTransaction: typeof handleSignTransactionRequest; eth_signTypedData: typeof handleSignTypedDataRequest; eth_signTypedData_v4: typeof handleSignTypedDataRequest; personal_sign: typeof handleSignRequest; wallet_addEthereumChain: (_: { wallet: Wallet; params: WalletConnectAddEthereumChainRequestParams; }) => never; wallet_switchEthereumChain: typeof handleSwitchChain; }; /** * Creates a new WalletConnect client for interacting with another application. * @param options - The options to use to create the WalletConnect client. * * @returns The WalletConnect client. Use this client to connect to a WalletConnect URI with {@link createWalletConnectSession}. * @example * ```ts * import { createWalletConnectClient } from "thirdweb/wallets"; * * const client = await createWalletConnectClient({ * wallet: wallet, * client: client, * }); * ``` * Pass custom handlers: * ```ts * import { createWalletConnectClient } from "thirdweb/wallets"; * * const client = await createWalletConnectClient({ * wallet: wallet, * client: client, * requestHandlers: { * eth_signTransaction: ({ account, chainId, params }) => { * // handle transaction signing * }, * }, * }); * ``` * Pass connect and disconnect callbacks: * ```ts * import { createWalletConnectClient } from "thirdweb/wallets"; * * const client = await createWalletConnectClient({ * wallet: wallet, * client: client, * onConnect: (session) => { * console.log("Connected to WalletConnect", session); * }, * onDisconnect: (session) => { * console.log("Disconnected from WalletConnect", session); * }, * }); * ``` * @wallet */ export declare function createWalletConnectClient(options: CreateWalletConnectClientOptions): Promise; /** * Initiates a new WalletConnect session for interacting with another application. * @param options - The options to use to create the WalletConnect session. * @example * ```ts * import { createWalletConnectClient, createWalletConnectSession } from "thirdweb/wallets"; * * const client = await createWalletConnectClient({ * wallet: wallet, * client: client, * }); * * const session = createWalletConnectSession({ * walletConnectClient: client, * uri: "wc:...", * }); * ``` * @wallet */ export declare function createWalletConnectSession(options: CreateWalletConnectSessionOptions): void; /** * Retrieves all active WalletConnect sessions. * @returns All active WalletConnect sessions. * @example * ```ts * import { getActiveWalletConnectSessions } from "thirdweb/wallets"; * * const sessions = await getActiveWalletConnectSessions(); * ``` * @wallet */ export declare function getActiveWalletConnectSessions(): Promise; /** * Disconnects a WalletConnect session. * @param options - The options to use to disconnect the WalletConnect session. * @example * ```ts * import { disconnectWalletConnectSession } from "thirdweb/wallets"; * * await disconnectWalletConnectSession({ * session: mySession, * walletConnectClient: wcClient, * }); * ``` * @wallet */ export declare function disconnectWalletConnectSession(options: { session: WalletConnectSession; walletConnectClient: WalletConnectClient; }): Promise; export {}; //# sourceMappingURL=index.d.ts.map