import type { BaseStore, DeriveGetter, InferPersistedState, InferSetStateReturn, InferStoreState, OptionallyPersistedStore } from './types'; type MethodOverrides> = Partial>; type VirtualStore> = OptionallyPersistedStore, InferPersistedState, InferSetStateReturn>; type VirtualStoreOptions = { debugMode?: boolean; /** * Whether to lock dependencies (see: {@link DeriveOptions}) for the virtual store. * @default true */ lockDependencies?: boolean; }; /** * ### `createVirtualStore` * * Returns a stable store interface backed by different store instances over time. * When dependencies change, the derive function runs and creates a new store, then * all subscriptions rebind automatically. Only depend on state that should trigger * new store creation. * * --- * 💡 **Note:** `lockDependencies` (see: {@link DeriveOptions}) is enabled by default. * Ensure that any `$` dependencies in your `createStore` function are called * consistently. If they are not, set `lockDependencies` to `false`. * * --- * @param createStore - Derive function that returns a store instance * @param overrides - Optional method overrides (e.g., `getState(id?: string)`) * * @example * ```ts * const useUserAssetsStore = createVirtualStore($ => { * const address = $(useWalletsStore).accountAddress; * return createUserAssetsStore(address); * }); * ``` */ export declare function createVirtualStore>>(createStore: ($: DeriveGetter) => Store, options?: VirtualStoreOptions): VirtualStore; export declare function createVirtualStore>, Overrides extends MethodOverrides>(createStore: ($: DeriveGetter) => Store, overrides: (getStore: () => Store) => Overrides, options?: VirtualStoreOptions): VirtualStore & Overrides; export {}; //# sourceMappingURL=createVirtualStore.d.ts.map