import { EventEmitter } from "events"; import { Model } from "sequelize"; import { CacheManager } from "./CacheManager"; import { CacheManagerOptions, PlainRecord, CacheStats } from "./types"; export declare class MultiModelCacheManager extends EventEmitter { private managers; private models; private baseOptions; private initialized; private sharedRedisClient; private logger; constructor(models: Record, options?: CacheManagerOptions); init(): Promise; private _initSharedRedis; private _forwardEvents; getManager(modelName: string): CacheManager; getById(modelName: string, id: string | number): Promise; getByKey(modelName: string, field: string, value: string | number): Promise; getManyByKey(modelName: string, field: string, values: Array): Promise>; preload(modelName: string, source: () => Promise): Promise; clear(modelName?: string): Promise; refresh(modelName?: string, forceFull?: boolean): Promise; destroy(): Promise; getStats(modelName?: string): CacheStats | Record; isInitialized(): boolean; getModelNames(): string[]; hasModel(modelName: string): boolean; getManagers(): Map>; waitUntilReady(timeoutMs?: number): Promise; invalidate(modelName: string, field: string, value: string | number): void; getAll(modelName: string): PlainRecord[]; toJSON(modelName: string, includeMeta?: boolean): PlainRecord[] | Array<{ data: PlainRecord; expiresAt: number; }>; loadFromJSON(modelName: string, data: PlainRecord[] | Array<{ data: PlainRecord; expiresAt: number; }>, hasMeta?: boolean): void; size(modelName?: string): number | Record; private _assertInitialized; }