import { ServerKeyringHttp } from "./ServerKeyringHttp"; import type { ChainNamespace } from "./types"; /** True when the remote service reports the BYOK wallet is already registered on the project. */ export declare function isByokWalletAlreadyExistsError(error: unknown): boolean; /** Connection details a BYOK keyring needs to register derived wallets server-side. */ export type WalletRegistrationConfig = { baseUrl: string; authToken: string; projectId: string; }; export type ByokChallenge = { challengeId: string; message: string; expiresAt: string; }; export type RegisteredByokWallet = { address: string; type: "byok"; }; export type RegisterWalletArgs = { address: string; namespace: ChainNamespace; name?: string; /** Signs the challenge `message` with EIP-191 (`personal_sign`) semantics. */ sign: (message: string, address: string) => Promise; }; /** * Registers a locally-derived BYOK wallet with the remote service: * 1. fetch an EIP-712 challenge for the address * 2. sign it in-process * 3. save the wallet with the signature * Strict: any failed call rejects (ServerKeyringHttp maps it to RemoteSigningError). */ export declare class WalletRegistrationClient { #private; constructor(config: WalletRegistrationConfig, sharedHttp?: ServerKeyringHttp); register(args: RegisterWalletArgs): Promise; }