import { ICacheService } from "./ICacheService";
import * as mongoDB from "mongodb";
export interface ICacheServiceController {
    getData<T>(key: string): Promise<T>;
    setData<T>(key: string, tData: T, expireAfterMs: number): Promise<void>;
    removeData(key: string): Promise<boolean>;
    isValid(key: string): Promise<boolean>;
    removeInvalidData(): Promise<number>;
}
export declare class MemoryCacheServiceController implements ICacheServiceController {
    private dataDic;
    getData<T>(key: string): Promise<T>;
    setData<T>(key: string, tData: T, expireAfterMs: number): Promise<void>;
    removeData(key: string): Promise<boolean>;
    isValid(key: string): Promise<boolean>;
    removeInvalidData(): Promise<number>;
    constructor();
}
export declare class MongoDbCacheServiceController implements ICacheServiceController {
    private cacheCollection;
    getData<T>(key: string): Promise<T>;
    setData<T>(key: string, tData: T, expireAfterMs: number): Promise<void>;
    removeData(key: string): Promise<boolean>;
    isValid(key: string): Promise<boolean>;
    removeInvalidData(): Promise<number>;
    constructor(cacheCollection: mongoDB.Collection<mongoDB.Document>);
}
export declare class CacheService implements ICacheService {
    private cacheServiceController;
    getData<T>(key: string): Promise<T>;
    setData<T>(key: string, tData: T, expireAfterMs: number): Promise<void>;
    removeData(key: string): Promise<boolean>;
    isValid(key: string): Promise<boolean>;
    removeInvalidData(): Promise<number>;
    constructor(cacheServiceController: ICacheServiceController);
}
