import { Token, ClassType, Registration } from '@tsdi/ioc'; import { BindingPropMetadata } from './BindingPropMetadata'; /** * Input decorator. * * @export * @interface InputPropertyDecorator */ export interface InputPropertyDecorator { /** * define Input property decorator with binding property name. * * @param {string} bindingName binding property name */ (bindingName?: string): PropertyDecorator; /** * define Input property decorator with binding metadata. * * @param {string} bindingName binding property name */ (metadata: BindingPropMetadata): PropertyDecorator; /** * define Input property decorator with binding property name and provider. * * @param {(Registration | ClassType)} provider define provider to resolve value to the property. * @param {*} [defaultVal] default value. */ (provider: Registration | ClassType, defaultVal?: any): PropertyDecorator; /** * define Input property decorator with binding property name and provider. * * @param {string} bindingName binding property name * @param {*} defaultVal default value. */ (bindingName: string, defaultVal: any): PropertyDecorator; /** * define Input property decorator with binding property name and provider. * * @param {string} bindingName binding property name * @param {Token} provider define provider to resolve value to the property. * @param {*} defaultVal default value. */ (bindingName: string, provider: Token, defaultVal: any): PropertyDecorator; /** * define property decorator. */ (target: object, propertyKey: string | symbol, descriptor?: TypedPropertyDescriptor): void; } /** * Input decorator. */ export declare const Input: InputPropertyDecorator;