import { createWalletStore } from './wallet-store.svelte.js'; import { createProviderStore } from './provider-store.svelte.js'; import { createUIStore } from './ui-store.svelte.js'; import { WalletRegistry } from '../adapters/registry.js'; import { createSigning } from '../signing.js'; /** * Svelte context key for the wallet scope. */ export declare const SCOPE_CONTEXT_KEY: unique symbol; /** * A scoped bundle of wallet store, provider store, UI store, and registry. * Each scope represents an independent chain connection. */ export interface WalletScope { readonly scopeId: string; readonly walletStore: ReturnType; readonly providerStore: ReturnType; readonly uiState: ReturnType['uiState']; readonly uiStore: ReturnType['uiStore']; readonly registry: WalletRegistry; readonly signTransactions: ReturnType['signTransactions']; readonly signAndSendTransactions: ReturnType['signAndSendTransactions']; } /** * Create a new wallet scope with isolated stores and registry. * For the 'default' scope, reuses the module-level singleton stores and registry * to maintain backward compatibility with direct singleton imports. * @param scopeId - Unique identifier for this scope (e.g., 'voi', 'algorand'). */ export declare function createWalletScope(scopeId?: string): WalletScope; /** * Get an active scope by ID. * Reactive in Svelte 5 templates (backed by $state). */ export declare function getScope(scopeId: string): WalletScope | undefined; /** * Register a scope in the active scopes registry. * Uses reference counting so multiple components sharing the same scope * won't cause premature removal on destroy. */ export declare function registerScope(scope: WalletScope): void; /** * Unregister a scope from the active scopes registry. * Only removes the scope when the last component using it is destroyed. */ export declare function unregisterScope(scopeId: string): void;