import type { WalletId } from '../adapters/types.js'; import type { ConnectedAccount, AccountAddedHandler, AccountAuthenticatedHandler, AccountRemovedHandler } from './types.js'; /** * Create the wallet store. * Uses Svelte 5 runes for reactive state management. * @param scopeId - Scope identifier for storage key namespacing. 'default' preserves existing keys. */ export declare function createWalletStore(scopeId?: string): { readonly accounts: ConnectedAccount[]; readonly selectedAccount: ConnectedAccount | null; readonly initialized: boolean; readonly loading: boolean; readonly connectedWalletIds: WalletId[]; readonly authenticatedAccounts: ConnectedAccount[]; readonly hasAccounts: boolean; setInitialized(value: boolean): void; setLoading(value: boolean): void; /** * Add accounts to the store. */ addAccounts(newAccounts: ConnectedAccount[]): void; /** * Remove accounts from the store. */ removeAccount(walletId: WalletId, address?: string): void; /** * Select an account. */ selectAccount(account: ConnectedAccount): void; /** * Select account by address. */ selectByAddress(address: string): void; /** * Set an account as authenticated and store its token. */ setAuthenticated(walletId: WalletId, address: string, token: string): void; /** * Log out an account (remove auth token). */ logout(walletId: WalletId, address: string): void; /** * Get the auth token for an address. */ getToken(address: string): string | undefined; /** * Update account name (e.g., from Envoi resolution). */ updateAccountName(address: string, name: string): void; /** * Clear all accounts and tokens. */ reset(): void; onAdd(handler: AccountAddedHandler): () => void; onAuth(handler: AccountAuthenticatedHandler): () => void; onRemove(handler: AccountRemovedHandler): () => void; }; /** * Singleton wallet store instance. */ export declare const walletStore: { readonly accounts: ConnectedAccount[]; readonly selectedAccount: ConnectedAccount | null; readonly initialized: boolean; readonly loading: boolean; readonly connectedWalletIds: WalletId[]; readonly authenticatedAccounts: ConnectedAccount[]; readonly hasAccounts: boolean; setInitialized(value: boolean): void; setLoading(value: boolean): void; /** * Add accounts to the store. */ addAccounts(newAccounts: ConnectedAccount[]): void; /** * Remove accounts from the store. */ removeAccount(walletId: WalletId, address?: string): void; /** * Select an account. */ selectAccount(account: ConnectedAccount): void; /** * Select account by address. */ selectByAddress(address: string): void; /** * Set an account as authenticated and store its token. */ setAuthenticated(walletId: WalletId, address: string, token: string): void; /** * Log out an account (remove auth token). */ logout(walletId: WalletId, address: string): void; /** * Get the auth token for an address. */ getToken(address: string): string | undefined; /** * Update account name (e.g., from Envoi resolution). */ updateAccountName(address: string, name: string): void; /** * Clear all accounts and tokens. */ reset(): void; onAdd(handler: AccountAddedHandler): () => void; onAuth(handler: AccountAuthenticatedHandler): () => void; onRemove(handler: AccountRemovedHandler): () => void; };