import { type RedisConnection } from './redis';
export interface CacheRedisClient {
    get(key: string): Promise<string | null> | string | null;
    set(key: string, value: string, mode: 'EX', ttl: number): Promise<unknown> | unknown;
}
export type CacheRedisProvider = () => RedisConnection<CacheRedisClient>;
export declare function resetCacheRedisConnection(): void;
export declare class Cache {
    private readonly getRedis;
    constructor(getRedis?: CacheRedisProvider);
    get(key: string): Promise<string | null>;
    set(key: string, value: string, ttl?: number): Promise<void>;
    getObj<T>(key: string): Promise<T | null>;
    setObj<T>(key: string, value: T, ttl?: number): Promise<void>;
    static get(key: string): Promise<string | null>;
    static set(key: string, value: string, ttl?: number): Promise<void>;
    static getObj<T>(key: string): Promise<T | null>;
    static setObj<T>(key: string, value: T, ttl?: number): Promise<void>;
}
//# sourceMappingURL=cache.d.ts.map