import 'reflect-metadata'; import { ParamPropMetadata } from '../metadatas/index'; import { MetadataAdapter, MetadataExtends } from './DecoratorFactory'; import { Token } from '../../types'; export declare type PropParamDecorator = (target: Object, propertyKey: string | symbol, parameterIndex?: number) => void; /** * Parameter and Property decorator. * * @export * @interface IParamPropDecorator */ export interface IParamPropDecorator { (provider: Token): PropParamDecorator; (metadata?: T): PropParamDecorator; (target: object, propertyKey: string | symbol, parameterIndex?: number): void; } /** * create parameter or property decorator * * @export * @template T * @param {string} name * @param {MetadataAdapter} [adapter] metadata adapter * @param {MetadataExtends} [metadataExtends] add extents for metadata. * @returns {IParamPropDecorator} */ export declare function createParamPropDecorator(name: string, adapter?: MetadataAdapter, metadataExtends?: MetadataExtends): IParamPropDecorator;