import { IDocContext } from '../../document_transformer_service'; import { SuggestionOption } from '../../api_types'; import { StreamingCompletionResponse } from '../../notifications'; /** * PostProcessor is an interface for classes that can be used to modify completion responses * before they are sent to the client. * They are run in order according to the order they are added to the PostProcessorPipeline. * Post-processors can be used to filter, sort, or modify completion and streaming suggestions. * Be sure to handle both streaming and completion responses in your implementation (if applicable). * */ export declare abstract class PostProcessor { processStream(_context: IDocContext, input: StreamingCompletionResponse): Promise; processCompletion(_context: IDocContext, input: SuggestionOption[]): Promise; } export interface PostProcessorPipeline { addProcessor(processor: PostProcessor): void; run({ documentContext, input, }: { documentContext: IDocContext; input: T; }): Promise; } /** * Pipeline for running post-processors on completion and streaming (generation) responses. * Post-processors are used to modify completion responses before they are sent to the client. * They can be used to filter, sort, or modify completion suggestions. */ export declare abstract class AbstractPostProcessorPipeline implements PostProcessorPipeline { #private; addProcessor(processor: PostProcessor): void; run({ documentContext, input, }: { documentContext: IDocContext; input: T; }): Promise; } export declare const PostProcessorPipeline: import("@gitlab-org/di").InterfaceId;