import { ID } from '../util/id'; import { EventEmitter } from '../util/eventEmitter'; export declare enum ProcessorType { Initiator = 0, ServerFilter = 1, ServerSort = 2, ServerLimit = 3, Extractor = 4, Transformer = 5, Filter = 6, Sort = 7, Limit = 8, } interface PipelineProcessorEvents { propsUpdated: (processor: PipelineProcessor) => void; beforeProcess: (...args: any[]) => void; afterProcess: (...args: any[]) => void; } export interface PipelineProcessorProps {} export declare abstract class PipelineProcessor< T, P extends Partial > extends EventEmitter> { readonly id: ID; private readonly _props; abstract get type(): ProcessorType; protected abstract _process(...args: any[]): T | Promise; protected validateProps?(...args: any[]): void; constructor(props?: Partial

); /** * process is used to call beforeProcess and afterProcess callbacks * This function is just a wrapper that calls _process() * * @param args */ process(...args: any[]): T | Promise; setProps(props: Partial

): this; get props(): P; } export {};