import { CheckedNumberAccepted, Guid, GuidAccepted } from "@ef-carbon/primitive"; import IProvider from "./cache/IProvider"; import { Init as FormationMapInit } from "./formation/Map"; import ICache from "./ICache"; import { IImmutable as IFormationImmutable } from "./IFormation"; export interface ICacheOptions { provider: IProvider; limit?: CheckedNumberAccepted; data?: FormationMapInit; } export declare class Cache implements ICache, ReadonlyMap> { provider: IProvider; private readonly checkedLimit; static limit: number; private readonly map; constructor({ data, provider, limit }: ICacheOptions); limit: number; protected miss(id: Guid, options?: Options): AsyncIterableIterator>; fetch(id: GuidAccepted, options?: Options): Promise>; get(id: GuidAccepted): IFormationImmutable | undefined; readonly size: number; clear(): void; shrink(size: number): void; has(id: GuidAccepted): boolean; forEach(callback: (value: IFormationImmutable, key: string, map: ReadonlyMap>) => void, thisArg: any): void; keys(): IterableIterator; values(): IterableIterator>; entries(): IterableIterator<[string, IFormationImmutable]>; [Symbol.iterator](): IterableIterator<[string, IFormationImmutable]>; [Symbol.toStringTag](): string; toJSON(_?: string): Array; protected store(formation: IFormationImmutable): void; } export { ICacheOptions as IOptions }; export default Cache;