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

//#region src/adapters/backends/compressed.d.ts
type CompressionFormat = "gzip" | "deflate" | "deflate-raw";
interface CreateCompressedStorageOptions {
  /** Compression format. @default "gzip" */
  format?: CompressionFormat;
}
/**
 * Native `CompressionStream`/`DecompressionStream` compression over a
 * string-wire `StateStorage`. Formats: `gzip` (default), `deflate`,
 * `deflate-raw`; output is base64 so it stays string-wire.
 *
 * A backend **wrapper**, not a sync `StorageCodec`, because the stream APIs
 * are async. Compose: `createStorage(() => createCompressedStorage(backend), codec)`.
 * Returns `undefined` when the stream APIs are unavailable. Stacks with
 * `createEncryptedStorage` (compress-then-encrypt is the standard order).
 *
 * @example
 * ```ts
 * import { createStorage } from "@stainless-code/persist";
 * import { createCompressedStorage } from "@stainless-code/persist/backends/compressed";
 * import { serovalCodec } from "@stainless-code/persist/codecs/seroval";
 *
 * const storage = createStorage<Prefs>(
 *   () => createCompressedStorage(() => localStorage)!,
 *   serovalCodec(),
 * );
 * ```
 */
declare function createCompressedStorage(getStorage: () => StateStorage<string>, options?: CreateCompressedStorageOptions): StateStorage<string> | undefined;
//#endregion
export { CompressionFormat, CreateCompressedStorageOptions, createCompressedStorage };