import { Type, TypeMetadata, ProviderMetadata } from '@tsdi/ioc'; import { IPipeTransform } from '../bindings/IPipeTransform'; /** * pipe decorator. */ export declare type PipeDecorator = >(target: TFunction) => TFunction | void; /** * pipe metadata. * * @export * @interface IPipeMetadata * @extends {TypeMetadata} */ export interface IPipeMetadata extends TypeMetadata, ProviderMetadata { /** * name of pipe. */ name: string; /** * If Pipe is pure (its output depends only on its input.) */ prue?: boolean; } /** * Pipe decorator. * * @export * @interface IInjectableDecorator */ export interface IPipeDecorator { /** * Pipe decorator, define the class as pipe. * * @Pipe * * @param {IPipeMetadata} [metadata] metadata map. */ (metadata?: IPipeMetadata): PipeDecorator; /** * Pipe decorator, define the class as pipe. * * @Pipe * * @param {string} selector metadata selector. */ (name: string, prue?: boolean): PipeDecorator; /** * Pipe decorator, define the class as pipe. * * @Pipe */ (target: Type): void; } /** * Pipe decorator, define for class. use to define the class. it can setting provider to some token, singleton or not. it will execute [`PipeLifecycle`] * * @Pipe */ export declare const Pipe: IPipeDecorator;