import type Redis from 'ioredis'; import { GroupLoader } from '../GroupLoader'; import type { CacheEntry, GroupCache, GroupCacheConfiguration } from '../types/DataSources'; import type { GetManyResult } from '../types/SyncDataSources'; import type { RedisCacheConfiguration } from './AbstractRedisCache'; import { AbstractRedisCache } from './AbstractRedisCache'; export interface RedisGroupCacheConfiguration extends RedisCacheConfiguration, GroupCacheConfiguration { groupTtlInMsecs?: number; } export declare class RedisGroupCache extends AbstractRedisCache implements GroupCache { readonly expirationTimeLoadingGroupedOperation: GroupLoader; ttlLeftBeforeRefreshInMsecs?: number; name: string; constructor(redis: Redis, config?: Partial); deleteGroup(group: string): Promise; deleteFromGroup(key: string, group: string): Promise; getFromGroup(key: string, groupId: string): Promise; getManyFromGroup(keys: string[], groupId: string): Promise>; getExpirationTimeFromGroup(key: string, groupId: string): Promise; setForGroup(key: string, value: T | null, groupId: string): Promise; setManyForGroup(entries: readonly CacheEntry[], groupId: string): Promise; resolveKeyWithGroup(key: string, groupId: string, groupIndexKey: string): string; resolveGroupIndexPrefix(groupId: string): string; close(): Promise; }