export interface ICacheAdapter { get: <T>( cacheName: string, key: string ) => Promise<T | undefined> | T | undefined set: <T>( cacheName: string, key: string, value: T, expire?: number ) => Promise<void> | void delete: (cacheName: string, ...keys: string[]) => Promise<boolean> | boolean array: <T>(cacheName: string) => undefined | T[] | Promise<T[] | undefined> deleteCache: (cacheName: string) => boolean | Promise<boolean> size: <T>( cacheName: string, filter?: (payload: T) => boolean ) => number | undefined | Promise<number | undefined> keys: ( cacheName: string ) => string[] | undefined | Promise<string[] | undefined>}