import { type ConfigurableWindow } from "../../internal/configurable-globals.js"; type Serializer = { serialize: (value: T) => string; deserialize: (value: string) => T | undefined; }; type StorageType = "local" | "session"; type PersistedStateOptions = { /** The storage type to use. Defaults to `local`. */ storage?: StorageType; /** The serializer to use. Defaults to `JSON.stringify` and `JSON.parse`. */ serializer?: Serializer; /** Whether to sync with the state changes from other tabs. Defaults to `true`. */ syncTabs?: boolean; } & ConfigurableWindow; /** * Creates reactive state that is persisted and synchronized across browser sessions and tabs using Web Storage. * @param key The unique key used to store the state in the storage. * @param initialValue The initial value of the state if not already present in the storage. * @param options Configuration options including storage type, serializer for complex data types, and whether to sync state changes across tabs. * * @see {@link https://runed.dev/docs/utilities/persisted-state} */ export declare class PersistedState { #private; constructor(key: string, initialValue: T, options?: PersistedStateOptions); get current(): T; set current(newValue: T); } export {};