import { PropertyMetadata } from '@tsdi/ioc'; import { IPropertyVaildate } from '../bindings/IBinding'; /** * vaildate property metadata. */ export interface VaildatePropertyMetadata extends PropertyMetadata, IPropertyVaildate { } /** * Vaildate decorator. * * @export * @interface VaildatePropertyDecorator */ export interface VaildatePropertyDecorator { /** * define Vaildate property is required or not. * * @param {boolean} required property is required or not. * @param {string} message error message of required. */ (required: boolean, message?: string): PropertyDecorator; /** * define Vaildate property decorator. * * @param {((value: any, target?: any) => boolean | Promise)} vaild vaild func for property. * @param {string} message error message of required. */ (vaild: (value: any, target?: any) => boolean | Promise, message?: string): PropertyDecorator; /** * define Vaildate property decorator with metadata. * * @param {string} bindingName binding property name */ (metadata: VaildatePropertyMetadata): PropertyDecorator; } /** * Vaildate decorator. */ export declare const Vaildate: VaildatePropertyDecorator;