import { ServiceIdentifier, bindingTypeValues, bindingScopeValues } from 'inversify'; type TBindingType = (typeof bindingTypeValues)[keyof typeof bindingTypeValues]; type TScopeBindingType = (typeof bindingScopeValues)[keyof typeof bindingScopeValues]; interface IInjectableDescriptor { id: ServiceIdentifier; value?: V; bindingType?: TBindingType; scopeBindingType?: TScopeBindingType; /** * Factory function for dynamic value bindings. * Used when type is set to DynamicValue. */ factory?: () => T; } type TAnyObject = Record; type Optional = T | null; type MaybePromise = T | Promise; export type { IInjectableDescriptor as I, MaybePromise as M, Optional as O, TAnyObject as T };