import { WalletObject } from '@ocap/wallet'; import { DIDTypeShortcut, DIDTypeArg } from '@arcblock/did'; import { LRUCache } from 'lru-cache'; export declare const cacheWallet: LRUCache, unknown>; /** * Create a wallet from public key * Internal helper function used by both createRemoteWallet and getWallet.getPkWallet */ export declare const getPkWallet: (type?: DIDTypeShortcut, appPk?: string) => WalletObject; /** * Create a remote wallet with sign and signJWT methods that call blocklet-service * @param publicKey - The public key to create the wallet from * @param type - The wallet type * @param keyType - Key type to use ('sk' or 'psk') * @returns Wallet object with remote sign and signJWT methods */ export declare const createRemoteWallet: (publicKey: string, type?: any, keyType?: "sk" | "psk") => WalletObject; /** * @param {string} [type=process.env.CHAIN_TYPE] can only be 'eth|ethereum' or 'default|arcblock' * @param {string} [appSk=process.env.BLOCKLET_APP_SK] must be hex * @param {string} [keyType='sk'] key type to use ('sk' or 'psk') * @return {WalletObject} {WalletObject} */ export declare const getWallet: { (type?: DIDTypeShortcut, appSk?: string, keyType?: "sk" | "psk"): WalletObject; getPermanentWallet: () => WalletObject; getEthereumWallet: (permanent?: boolean) => WalletObject; getPkWallet: (type?: DIDTypeShortcut, appPk?: string) => WalletObject; deriveWallet: (sub: string, type?: DIDTypeArg, index?: number, keyType?: "sk" | "psk") => Promise; getAccessWallet: () => WalletObject; }; /** * Create wallet from app DID with automatic fallback to remote signing * @param sub - Subject identifier (e.g., 'email|user@example.com') * @param type - DID type shortcut (e.g., 'ethereum') * @param index - Index for deriving wallet (default: 0) * @param keyType - Key type to use ('sk' or 'psk', default: 'sk') * @returns Wallet object with sign and signJWT methods */ export declare const deriveWallet: (sub: string, type?: DIDTypeArg, index?: number, keyType?: "sk" | "psk") => Promise; export declare const getPermanentWallet: () => WalletObject; export declare const getEthereumWallet: (permanent?: boolean) => WalletObject; export declare const getAccessWallet: () => WalletObject;