import { ITelemetryService } from '../../telemetry/common/telemetry'; interface IChatWebSocketConnectionTelemetryProperties { conversationId: string; initiatingRequestId: string; gitHubRequestId: string; } interface IChatWebSocketRequestTelemetryProperties extends IChatWebSocketConnectionTelemetryProperties { modelId: string | undefined; requestId: string | undefined; turnId: string | undefined; previousTurnId: string | undefined; hadActiveRequest: boolean; } export interface IChatWebSocketConnectedTelemetryProperties extends IChatWebSocketConnectionTelemetryProperties { connectDurationMs: number; } export interface IChatWebSocketConnectErrorTelemetryProperties extends IChatWebSocketConnectionTelemetryProperties { error: string; connectDurationMs: number; responseStatusCode: number | undefined; responseStatusText: string | undefined; networkError: string | undefined; } export interface IChatWebSocketCloseTelemetryProperties extends IChatWebSocketRequestTelemetryProperties { closeCode: number; closeReason: string; closeEventReason: string; closeEventWasClean: string; connectionDurationMs: number; totalSentMessageCount: number; totalReceivedMessageCount: number; totalSentCharacters: number; totalReceivedCharacters: number; } export interface IChatWebSocketErrorTelemetryProperties extends IChatWebSocketRequestTelemetryProperties { error: string; connectionDurationMs: number; totalSentMessageCount: number; totalReceivedMessageCount: number; totalSentCharacters: number; totalReceivedCharacters: number; } export interface IChatWebSocketCloseDuringSetupTelemetryProperties extends IChatWebSocketConnectionTelemetryProperties { closeCode: number; closeReason: string; closeEventReason: string; closeEventWasClean: string; connectDurationMs: number; } export interface IChatWebSocketRequestSentTelemetryProperties extends IChatWebSocketRequestTelemetryProperties { statefulMarkerMatched: boolean; previousResponseIdUnset: boolean; hasCompactionData: boolean; summarizedAtRoundIdSet: boolean; summarizedAtRoundIdMatched: boolean; modeChanged: boolean | undefined; compactionThreshold: number | undefined; tokenCountMax: number; modelMaxPromptTokens: number; connectionDurationMs: number; totalSentMessageCount: number; totalReceivedMessageCount: number; sentMessageCharacters: number; totalSentCharacters: number; totalReceivedCharacters: number; } export interface IChatWebSocketMessageParseErrorTelemetryProperties extends IChatWebSocketRequestTelemetryProperties { error: string; connectionDurationMs: number; totalSentMessageCount: number; totalReceivedMessageCount: number; receivedMessageCharacters: number; totalSentCharacters: number; totalReceivedCharacters: number; } export type ChatWebSocketRequestOutcome = 'completed' | 'response_failed' | 'response_incomplete' | 'response_cancelled' | 'upstream_error' | 'canceled' | 'superseded' | 'connection_closed' | 'connection_disposed' | 'error_response'; export interface IChatWebSocketRequestOutcomeTelemetryProperties extends IChatWebSocketRequestTelemetryProperties { requestOutcome: ChatWebSocketRequestOutcome; statefulMarkerMatched: boolean; previousResponseIdUnset: boolean; hasCompactionData: boolean; summarizedAtRoundIdSet: boolean; summarizedAtRoundIdMatched: boolean; modeChanged: boolean | undefined; compactionThreshold: number | undefined; promptTokenCount: number; tokenCountMax: number; modelMaxPromptTokens: number; connectionDurationMs: number; requestDurationMs: number; totalSentMessageCount: number; totalReceivedMessageCount: number; totalSentCharacters: number; totalReceivedCharacters: number; requestSentMessageCount: number; requestReceivedMessageCount: number; requestSentCharacters: number; requestReceivedCharacters: number; closeCode?: number; closeReason?: string; serverErrorMessage?: string; serverErrorCode?: string; } export declare class ChatWebSocketTelemetrySender { static sendConnectedTelemetry(telemetryService: ITelemetryService, properties: IChatWebSocketConnectedTelemetryProperties): void; static sendConnectErrorTelemetry(telemetryService: ITelemetryService, properties: IChatWebSocketConnectErrorTelemetryProperties): void; static sendCloseTelemetry(telemetryService: ITelemetryService, properties: IChatWebSocketCloseTelemetryProperties): void; static sendErrorTelemetry(telemetryService: ITelemetryService, properties: IChatWebSocketErrorTelemetryProperties): void; static sendCloseDuringSetupTelemetry(telemetryService: ITelemetryService, properties: IChatWebSocketCloseDuringSetupTelemetryProperties): void; static sendRequestSentTelemetry(telemetryService: ITelemetryService, properties: IChatWebSocketRequestSentTelemetryProperties): void; static sendMessageParseErrorTelemetry(telemetryService: ITelemetryService, properties: IChatWebSocketMessageParseErrorTelemetryProperties): void; static sendRequestOutcomeTelemetry(telemetryService: ITelemetryService, properties: IChatWebSocketRequestOutcomeTelemetryProperties): void; } export {}; //# sourceMappingURL=chatWebSocketTelemetry.d.ts.map