import { IKosDataModel, IKosModel } from './kosModel';

export type KosModelCacheHandler = Pick<KosModelCache, "hasModel" | "restoreFromDeleteCache" | "addModel" | "getModelById">;
export declare class KosModelCache {
    private preloadKeys;
    private _modelsById;
    private _toDelete;
    private _preloaded;
    private _isPreloaded;
    constructor(preloadKeys?: (string | {
        modelType: string;
        modelId?: string;
        options?: Record<string, any>;
    })[]);
    get models(): IKosModel[];
    getModelById<T extends IKosDataModel = IKosDataModel>(id: string): IKosModel<T> | undefined;
    addModel<T extends IKosModel>(model: T): T;
    removeModel(modelId: string): void;
    hasModel(modelId?: string): boolean;
    restoreFromDeleteCache(modelId?: string): void;
    markForDeletion(model: IKosModel): void;
    preload(createFn: (key: string | {
        modelType: string;
        modelId?: string;
        options?: Record<string, any>;
    }) => IKosModel | undefined): IKosModel[];
}
//# sourceMappingURL=model-cache.d.ts.map