import { f as StateStorage, u as PersistStorage } from "../persist-core-B649IGlX.mjs";
import { MMKV } from "react-native-mmkv";

//#region src/adapters/backends/mmkv.d.ts
/**
 * `StateStorage` over a `react-native-mmkv` `MMKV` instance — synchronous,
 * string-wire. Pass an instance from `createMMKV({ id, encryptionKey?, path? })`.
 *
 * @example
 * ```ts
 * import { createMMKV } from "react-native-mmkv";
 * import { mmkvStateStorage } from "@stainless-code/persist/backends/mmkv";
 *
 * const instance = createMMKV({ id: "app-prefs" });
 * const storage = mmkvStateStorage(instance);
 * ```
 */
declare function mmkvStateStorage(instance: MMKV): StateStorage;
interface MmkvStorageOptions {
  /** MMKV instance id — namespaces persisted state into its own file. */
  id: string;
  /** Custom MMKV root path. */
  path?: string;
  /** Encryption key (max 16 bytes) — MMKV encrypts the file at rest. */
  encryptionKey?: string;
}
/**
 * Build a JSON-encoded `PersistStorage` over a fresh `react-native-mmkv`
 * instance. Synchronous backend → hydration settles before first render →
 * no `useHydrated` gate required (unlike IndexedDB / AsyncStorage). MMKV is
 * the fastest RN KV store; pair `encryptionKey` for secrets-at-rest.
 *
 * @example
 * ```ts
 * import { createMmkvStorage } from "@stainless-code/persist/backends/mmkv";
 * import { persistStore } from "@stainless-code/persist/sources/tanstack-store";
 *
 * const storage = createMmkvStorage<Prefs>({ id: "app-prefs" })!;
 * persistStore(store, { name: "app:prefs:v1", storage });
 * ```
 */
declare function createMmkvStorage<S>(options: MmkvStorageOptions): PersistStorage<S> | undefined;
//#endregion
export { MmkvStorageOptions, createMmkvStorage, mmkvStateStorage };