System.register([], (function (exports) {
  'use strict';
  return {
    execute: (function () {

      const createStoreImpl = (createState, configs) => {
        let timeout;
        let state;
        const listeners = /* @__PURE__ */ new Set();
        const setState = (partial, replace) => {
          const nextState = typeof partial === "function" ? partial(state) : partial;
          if (!Object.is(nextState, state)) {
            const previousState = state;
            state = (replace != null ? replace : typeof nextState !== "object" || nextState === null) ? nextState : Object.assign({}, state, nextState);
            listeners.forEach((listener) => listener(state, previousState));
          }
        };
        const getState = () => state;
        const getInitialState = () => initialState;
        const resetBasedOnCachTime = () => {
          if (!(configs == null ? void 0 : configs.cacheTime))
            return;
          if (timeout)
            clearTimeout(timeout);
          timeout = setTimeout(() => {
            state = createState(setState, getState, api);
          }, configs == null ? void 0 : configs.cacheTime);
        };
        const subscribe = (listener) => {
          listeners.add(listener);
          if (timeout)
            clearTimeout(timeout);
          return () => {
            const responseDelete = listeners.delete(listener);
            if (!listeners.size) {
              resetBasedOnCachTime();
            }
            return responseDelete;
          };
        };
        const destroy = () => {
          {
            console.warn(
              "[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."
            );
          }
          listeners.clear();
        };
        const api = { setState, getState, getInitialState, subscribe, destroy };
        const initialState = state = createState(setState, getState, api);
        return api;
      };
      const createStore = exports("createStore", createStoreImpl);
      var vanilla = exports("default", (createState) => {
        {
          console.warn(
            "[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'."
          );
        }
        return createStore(createState);
      });

    })
  };
}));