import { Type } from '../../types'; import { TypeMetadata } from '../metadatas/index'; import { MetadataAdapter, MetadataExtends } from './DecoratorFactory'; export declare type ClassMethodDecorator = (target: Object | Type, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor) => void; /** * class method decorator * * @export * @interface IClassMethodDecorator * @template T */ export interface IClassMethodDecorator { (metadata?: T): ClassMethodDecorator; (target: Type): void; (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor): void; } /** * create decorator for class and method. * * @export * @template T * @param {string} name * @param {MetadataAdapter} [adapter] metadata adapter * @param {MetadataExtends} [metadataExtends] add extents for metadata. * @returns {IClassMethodDecorator} */ export declare function createClassMethodDecorator(name: string, adapter?: MetadataAdapter, metadataExtends?: MetadataExtends): IClassMethodDecorator;