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

//#region src/adapters/backends/secure-store.d.ts
/**
 * `StateStorage` over `expo-secure-store` — fully async, string-wire, backed
 * by the platform keychain/keystore. Values are encrypted at rest by the OS.
 *
 * **~2KB value limit per key** (platform-imposed) — use this for small secrets
 * (auth tokens, short prefs), not large state. Oversized writes reject; pair
 * `partialize` to persist only a small slice.
 *
 * SecureStore keys must match `/^[\w.-]+$/`. Persist names using colons (e.g.
 * `auth:token:v1`) are sanitized — characters outside that set become `_` — so
 * colon-style names round-trip consistently across get/set/remove.
 *
 * @example
 * ```ts
 * import { secureStoreStateStorage } from "@stainless-code/persist/backends/secure-store";
 *
 * const storage = secureStoreStateStorage();
 * ```
 */
declare function secureStoreStateStorage(): StateStorage;
/**
 * Build a JSON-encoded `PersistStorage` over `expo-secure-store`. Async backend
 * → `useHydrated` gating is mandatory. **~2KB value limit per key** — keep
 * persisted state small; use `partialize` to project a tiny slice (e.g. an auth
 * token) and a different backend (IndexedDB, MMKV) for larger state.
 *
 * @example
 * ```ts
 * import { createSecureStoreStorage } from "@stainless-code/persist/backends/secure-store";
 * import { persistStore } from "@stainless-code/persist/sources/tanstack-store";
 *
 * const storage = createSecureStoreStorage<AuthToken>()!;
 * persistStore(store, { name: "auth:token:v1", storage, partialize: (s) => s.token });
 * ```
 */
declare function createSecureStoreStorage<S>(): PersistStorage<S> | undefined;
//#endregion
export { createSecureStoreStorage, secureStoreStateStorage };