export declare enum AcceptMode { Full = "Full", Partial = "Partial" } export declare enum FinishReason { Repeat = "Repeat", PartialRepeat = "PartialRepeat", FeatureNotSupported = "FeatureNotSupported", LanguageNotSupported = "LanguageNotSupported", LanguageNotAvailable = "LanguageNotAvailable", Abort = "Abort", Normal = "Normal", MaxTokens = "MaxToken", Empty = "Empty", Error = "Error" } export declare enum CompletionIntent { BlockScope = "BlockScope", Inline = "Inline" } export declare enum CompletionType { Normal = "Normal", C2F = "C2F" } export interface BaseCompletionTelemetry { /** * 唯一 ID,用户提供该给研发侧回放复现 */ id: string; /** * 使用的 LLM */ languageModel: string; /** * 代码语言 */ languageId: string; /** * 当前光标所在位置的情况:块级和内联行级 */ intent: CompletionIntent; /** * 调用方式,auto 为自动触发,invoke 为手动触发 */ trigger: 'auto' | 'invoke'; /** * 是否是缓存 */ isCache: boolean; /** * 补全发生时的时间戳 */ time?: number; } export interface CompletionDetailsTelemetry extends Omit { /** * 补全类型 */ type: CompletionType; /** * LLM 需要的 Prompt 参数 */ prompt: string; /** * LLM 需要的后缀参数,可能 LLM 不支持 */ suffix?: string; /** * 光标前的文本,超过 100 行,则只取 100 行;超过 2000 个字符,则只取 2000 个字符 */ textBeforeCursor: string; /** * 光标后的文本,超过 100 行,则只取 100 行;超过 2000 个字符,则只取 2000 个字符 */ textAfterCursor?: string; /** * 补全停止的字符串 */ stop: string; /*** * 当前光标所在代码的缩进字符串 */ indent?: string; /** * 当前光标所在代码的父代码的缩进字符串 */ parentIndent?: string; /** * 补全的原始文本 */ completionRawText: string; /** * 处理加工后的补全文本 */ completionText: string; /** * 补全的文本范围 */ completionRange?: string; /** * 补全的原始文本长度 */ completionRawTextLength: number; /** * 补全的处理加工后的文本长度 */ completionTextLength: number; /** * 补全的原始文本行数 */ completionRawTextLineCount: number; /** * 补全的处理加工后的文本行数 */ completionTextLineCount: number; /** * 获取补全所消耗的时间 */ fetchDuration: number; } export interface CompletionTelemetry extends BaseCompletionTelemetry { /** * 补全的错误信息 */ error?: string; /** * 是否显示 */ display: boolean; } export type CodeChangeTrackerState = 'unchanged' | 'changed' | 'dropped'; export interface AcceptCompletionTrackerTelemetry extends AcceptCompletionTelemetry { /** * 触发补全后跟踪的时间间隔 */ duration: number; /** * 补全被修改后的状态 */ state: CodeChangeTrackerState; /** * 用户修改补全代码后与最初接受的补全代码之间的相识度 */ similarity: string; /** * 补全被修改后的代码 */ changedText?: string; /** * 补全被修改后的代码长度 */ characterLength: number; } export interface AcceptCompletionTelemetry extends BaseCompletionTelemetry { /** * 补全接受的模式 */ acceptMode: AcceptMode; /** * 接受长度 */ characterLength: number; } export interface CompletionNesTelemetry { /** * 消息唯一标识 */ requestId?: string; /** * 用户操作类型 */ actionType: CompletionNesActionKind; /** * 建议的代码行数 */ lineCount?: number; /** * 建议的代码字数 */ charCount?: number; /** * 补全发生时的时间戳 */ time?: number; } export interface AcceptCompletionNesTelemetry { acceptAt: number; acceptLines: number; acceptMode: 'navigate'; } export declare enum CompletionNesActionKind { SHOWN = "shown", ACCEPT = "accept", DISMISS = "dismiss" } //# sourceMappingURL=legacy-completion.d.ts.map