import { AbstractType, Type } from './type'; import { InjectFlags } from './injector'; import { InjectionToken } from './injection-token'; import { ForwardRef } from './forward-ref'; export interface Inject { token: InjectionToken | Type | ForwardRef | Type>; } export interface InjectDecorator { (token: InjectionToken | Type | ForwardRef | Type>): ParameterDecorator; new (token: InjectionToken | Type | ForwardRef | Type>): Inject; } /** * 构造函数参数装饰器,用于改变注入 token */ export declare const Inject: InjectDecorator; export interface Self { } export interface SelfDecorator { (): ParameterDecorator; new (): Self; } export declare const Self: SelfDecorator; export interface SkipSelf { } export interface SkipSelfDecorator { (): ParameterDecorator; new (): SkipSelf; } export declare const SkipSelf: SkipSelfDecorator; export interface Optional { } export interface OptionalDecorator { (): ParameterDecorator; new (): Optional; } export declare const Optional: OptionalDecorator; export interface TypeDecorator { >(type: T): T; (target: unknown, propertyKey?: string | symbol, parameterIndex?: number): void; } export interface Prop { } export interface PropDecorator { (token?: Type | AbstractType | InjectionToken | ForwardRef, notFoundValue?: T, flags?: InjectFlags): PropertyDecorator; new (token: any): Prop; } export declare const Prop: PropDecorator;