/// <reference types="node" />
export interface CacheSetOptions {
    ttl?: number;
    tags?: string[];
    onlyIfEmpty?: boolean;
}
export interface CacheStore {
    get(ns: string, key: string): Promise<Buffer | null>;
    getMulti(ns: string, keys: string[]): Promise<(Buffer | null)[]>;
    set(ns: string, key: string, value: any, options?: CacheSetOptions | number): Promise<boolean>;
    del(ns: string, key: string): Promise<boolean>;
    expire(ns: string, key: string, ttl: number): Promise<boolean>;
    ttl(ns: string, key: string): Promise<number>;
    setTags(ns: string, key: string, tags: string[]): Promise<boolean>;
    purgeTag(ns: string, tag: string): Promise<string[]>;
    rand?: number;
}
export declare function defaultCacheStore(): CacheStore;
