/** * @param {any} client * @param {{ keyPrefix?: string }} [options] * @returns {import('../stores.js').AuthCodeStore} */ export function createRedisAuthCodeStore(client: any, options?: { keyPrefix?: string; }): import("../stores.js").AuthCodeStore; /** * @param {any} client * @param {{ keyPrefix?: string }} [options] * @returns {import('../stores.js').ParStore} */ export function createRedisParStore(client: any, options?: { keyPrefix?: string; }): import("../stores.js").ParStore; /** * Refresh family with rotation + reuse detection over the shared * record-store idiom. A revocation is a tombstone (never a plain update) * so a concurrent rotation on another node cannot silently un-revoke the * family. Records carry `expiresAt`, mirrored to a Redis TTL. * * @param {any} client * @param {{ keyPrefix?: string }} [options] * @returns {import('../stores.js').RefreshStore} */ export function createRedisRefreshStore(client: any, options?: { keyPrefix?: string; }): import("../stores.js").RefreshStore; /** * Device flow (RFC 8628): the `device_code` record plus a `user_code` → * `device_code` reverse pointer, each on its own Redis TTL. * * @param {any} client * @param {{ keyPrefix?: string }} [options] * @returns {import('../stores.js').DeviceStore} */ export function createRedisDeviceStore(client: any, options?: { keyPrefix?: string; }): import("../stores.js").DeviceStore;