import { TScope } from "../org.springframework.context/annotations"; /** * Bean name or token to comply with. * Abstract token can be mapped to bean associated token or bean name. * Bean name can be mapped to bean name or bean associated token. */ export declare type TWishedBean = string | Symbol; /** * Params for Autowired annotation */ export declare type TAutowiredParams = { required?: boolean; resolve?: TWishedBean; }; /** * Definition of autowired-marked field */ export declare type TAutowire = { property: string; wishedBean: any; required: boolean; resolve?: TWishedBean; }; /** * Definition of bean */ export declare type TBeanDefinition = { token: Symbol; factory: new () => T; factoryProperty?: string; scope: TScope; resolver: TWishedBean; configuration?: boolean; bean?: any; }; export declare const dependenciesToken: unique symbol; /** * Inject field (instantiating if needed dependencies). * Allowing scopes (prototype, singleton, global). * @remark https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html * @param wishedBean - bean name or token. * @param params - params (required, scope, etc). */ export declare function Autowired(wishedBean: TWishedBean, params?: TAutowiredParams): (target: any, propertyKey: string) => void;