import { InputProcessor } from './input-processor';
/** The `ProcessorChain` class takes an array of input processors, processes input through them, and returns the final output. */
export declare class ProcessorChain<T> {
  private processors;
  /**
   * This is a constructor function that takes an array of input processors as a parameter.
   *
   * @param {InputProcessor<unknown, unknown, unknown>[]} processors - The `processors` parameter is a
   * private property of the class that is of type `InputProcessor` which is an interface that takes
   * three type parameters - `Input`, `Output`, and `Context`. It is an array of instances of classes
   * that implement the `InputProcessor` interface. These processors are
   */
  constructor(processors: InputProcessor<unknown, unknown, unknown>[]);
  /**
   * This function processes input through a series of processors and returns the final output.
   *
   * @typedef T generic type
   * @param {unknown} input - The input parameter is of type unknown, which means it can be any type of
   * value. It is the data that will be processed by the processors.
   * @returns {T} the output of the last processor in the `this.processors` array.
   */
  process(input: unknown): T;
}
