import * as Vue from "vue"; import { createStore, Mutate, StateCreator, StoreApi, StoreMutatorIdentifier } from "zustand/vanilla"; import { defineProxy, defineSet } from "./proxy"; export type ExtractState = S extends { getState: () => infer T; } ? T : never; declare type Primitive = string | number | boolean | bigint | symbol | Date | Error; type TIsFunction = T extends Function ? T : T extends Primitive ? Vue.Ref : Vue.UnwrapNestedRefs; type WithVue> = S & { getServerState?: () => ExtractState; }; export type UseBoundStore>> = { (): TIsFunction>; (selector: (state: ExtractState) => U, equals?: (a: U, b: U) => boolean): TIsFunction; } & S; export type Create = { (initializer: StateCreator): UseBoundStore, Mos>>; (): (initializer: StateCreator) => UseBoundStore, Mos>>; >(store: S): UseBoundStore; }; export type TObject = Record; export type TSubscribeCache = Record void>; declare const create: Create; export { create, createStore, defineProxy, defineSet, StateCreator, StoreApi };