export class NormalizedMap < TKey , TValue > implements Map < TKey , TValue > { private _map : Map < string , TValue > = new Map < string , TValue > ( ) ; public constructor ( private normalizeKey ) { } public clear ( ) { this . _map . clear ( ) ; } public delete ( key ) { return this . _map . delete ( this . normalizeKey ( key ) ) ; } public forEach ( callbackfn , thisArg ? ) { throw new Error ( "NYI" ) ; } public get ( key ) { return this . _map . get ( this . normalizeKey ( key ) ) ; } public has ( key ) { return this . _map . has ( this . normalizeKey ( key ) ) ; } public set ( key , value ) { this . _map . set ( this . normalizeKey ( key ) , value ) ; return this ; } public get size ( ) : number { return this . _map . size ; } public [ Symbol . iterator ] ( ) { throw new Error ( "NYI" ) ; } public entries ( ) { throw new Error ( "NYI" ) ; } public keys ( ) { throw new Error ( "NYI" ) ; } public values ( ) { return this . _map . values ( ) ; } public get [ Symbol . toStringTag ] ( ) : string { return "NormalizedMap<TKey, TValue>" ; } }