interface IUnderlyingMap { has(key: K): boolean; get(key: K): V | undefined; delete(key: K): boolean; set(key: K, value: V): void; } interface IManagedMap { has(key: K): boolean; get(key: K): V; delete(key: K): boolean; set(key: K, value: V): void; getUnderlyingDataStructure(): IUnderlyingMap; } declare type ValueFactory = (key: K) => V; declare function mapFactory(factory: ValueFactory, map?: IUnderlyingMap): IManagedMap; export = mapFactory; //# sourceMappingURL=index.d.ts.map