import { Model } from 'sequelize-typescript';
declare type ModelCacheType = 'local-account-name' | 'local-actor-name' | 'local-actor-url' | 'load-video-immutable-id' | 'load-video-immutable-url';
declare type DeleteKey = 'video';
declare class ModelCache {
    private static instance;
    private readonly localCache;
    private readonly deleteIds;
    private constructor();
    static get Instance(): ModelCache;
    doCache<T extends Model>(options: {
        cacheType: ModelCacheType;
        key: string;
        fun: () => Promise<T>;
        whitelist?: () => boolean;
        deleteKey?: DeleteKey;
    }): Promise<T>;
    invalidateCache(deleteKey: DeleteKey, modelId: number): void;
}
export { ModelCache };
//# sourceMappingURL=model-cache.d.ts.map