import { Type } from '@tsdi/ioc'; import { IComponentMetadata } from './IComponentMetadata'; /** * Component decorator * * @export * @interface IComponentDecorator */ export interface IComponentDecorator { /** * Component decorator, define for class. use to define the class. it can setting provider to some token, singleton or not. it will execute [`ComponentLifecycle`] * * @Component * * @param {IComponentMetadata} [metadata] metadata map. */ (metadata?: IComponentMetadata): ClassDecorator; /** * Component decorator, use to define class as Component element. * * @Task * @param {string} selector metadata selector. */ (selector: string): ClassDecorator; /** * Component decorator, define for class. use to define the class. it can setting provider to some token, singleton or not. it will execute [`ComponentLifecycle`] * * @Component */ (target: Type): void; } /** * Component decorator, define for class. use to define the class as Component. it can setting provider to some token, singleton or not. it will execute [`ComponentLifecycle`] * * @Component */ export declare const Component: IComponentDecorator;