import { DiContainer , Type , TypeIdentifier } from "../di-container.ts" ; /**
 * Decorator used to inject a type using a type identifier
 */ export function Inject < T = unknown > ( identifier , options ? ) ; export function Inject < T = unknown > ( identifier , options ? ) { return function ( target , propName ? , paramIndex ? ) { if ( propName ) { DiContainer . root ( ) . registerProperty ( target . constructor as Type , propName . toString ( ) , { identifier , defer : options ?. defer } ) ; } if ( paramIndex || paramIndex === 0 ) { DiContainer . root ( ) . registerCtorParam ( target as Type , paramIndex , { identifier , defer : options ?. defer } ) ; } } ; }