import { CacheMatchFn, CacheOptions } from './type';

export default class Cache<T> {
    private matchList;
    private data;
    getWithCache<R>(mark: T, execute: () => Promise<R>, options?: CacheOptions): Promise<R>;
    useMatch(fn: CacheMatchFn<T>): void;
    removeCacheByMark(mark: T): void;
    private cacheExpire;
    removeCacheById(unique: symbol): void;
}
