exportinterfaceIKeyedInstanceFactory<TId=unknown,TData=unknown,TInstance=unknown,TIdData=TData,>extendsIDisposable{readonlyisEmpty:boolean;readonlysize:number;create(data:TData):{referenceCount:number;instance:TInstance;id:TId;};/** Like `create(data).instance` but allocates no intermediate result object. */createAndGetInstance(data:TData):TInstance;release(id:TId,force?:boolean,):{referenceCount:number;instance:TInstance|null};ids():MapIterator<TId>;getOrCreate(data:TData):TInstance;getFromId(id:TId):TInstance|undefined;