import { NotificationHandler } from 'vscode-languageserver'; import { GitLabApiClient, GenerationType } from '../api'; import { AdditionalContext } from '../api_types'; import { IDocContext } from '../document_transformer_service'; import { TelemetryTracker } from '../tracking/tracking_types'; import { PostProcessorPipeline } from '../suggestion_client/post_processors/post_processor_pipeline'; import { Notifier, NotifyFn } from '../notifier'; import { StreamingCompletionResponse, StreamWithId } from '../notifications'; import { SuggestionApiErrorCheck } from '../feature_state/suggestion_api_error_check'; export interface StartStreamParams { streamId: string; uniqueTrackingId: string; documentContext: IDocContext; userInstruction?: string; generationType?: GenerationType; additionalContexts?: AdditionalContext[]; } export interface StreamingHandler extends Notifier { notificationHandler: NotificationHandler; startStream({ additionalContexts, documentContext, streamId, uniqueTrackingId, userInstruction, generationType, }: StartStreamParams): Promise; } export declare const StreamingHandler: import("@gitlab-org/di").InterfaceId; export declare class DefaultStreamingHandler implements StreamingHandler { #private; constructor(api: GitLabApiClient, postProcessorPipeline: PostProcessorPipeline, tracker: TelemetryTracker, apiErrorCheck: SuggestionApiErrorCheck); init(streamingCompletionNotifyFn: NotifyFn): void; notificationHandler(stream: StreamWithId): void; startStream({ additionalContexts, documentContext, streamId, uniqueTrackingId, userInstruction, generationType, }: StartStreamParams): Promise; }