import { MemCacheClient, MemCacheClientOptions } from '../cacheClient/MemCacheClient'; import { RedisClient, RedisClientOptions } from '../cacheClient/RedisClient'; export interface Provider { getItem(key: string): Promise; setItem(key: string, value: T): Promise; deleteItem(key: string): Promise; isAvailable(): boolean; } export type ProviderType = 'memory' | 'redis'; export type ProviderConfig = { prefix?: string; }; export declare class MemProvider implements Provider { private prefix; private client; constructor(client?: MemCacheClient, prefix?: string); get keyPrefix(): string; getItem(key: string): Promise; setItem(key: string, value: T): Promise; deleteItem(key: string): Promise; isAvailable(): boolean; } export declare class RedisProvider implements Provider { private prefix; private client; constructor(client?: RedisClient, prefix?: string); get keyPrefix(): string; getItem(key: string): Promise; setItem(key: string, value: T): Promise; deleteItem(key: string): Promise; isAvailable(): boolean; } export declare const getProvider: (type?: ProviderType, config?: ProviderConfig) => Provider; export declare const configureMemClient: (options?: Partial) => void; export declare const configureRedisClient: (options?: Partial) => void; export { RateLimitProvider, getRateLimitProvider } from './RateLimitProvider'; export default getProvider; //# sourceMappingURL=cacheProvider.d.ts.map