/*! * Jodit Editor PRO (https://xdsoft.net/jodit/) * See LICENSE.md in the project root for license information. * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/ */ import type { IJodit } from "jodit/esm/types/index"; import type { IAIAssistantResult, IAIMessage, IConversationOptions, ISelectionContext } from "../interface/index"; import type { ToolRegistry } from "./tool-registry"; /** * API Client - handles requests to AI API with retry logic */ export declare class APIClient { private jodit; private toolRegistry; private abortControllers; constructor(jodit: IJodit, toolRegistry: ToolRegistry); /** * Send request to AI API */ sendRequest(conversationId: string, messages: Readonly, parentMessageId: string | null, selectionContexts: ISelectionContext[], conversationOptions?: IConversationOptions): Promise; /** * Abort current request */ abort(): void; /** * Check if request is in progress */ isInProgress(): boolean; /** * Build request context */ private buildRequestContext; /** * Expand messages with tool calls by adding separate tool result messages */ private expandToolMessages; private expandToolResultsMessage; /** * Validate API response */ private validateResponse; /** * Calculate retry delay with exponential backoff */ private calculateRetryDelay; /** * Sleep utility */ private sleep; /** * Destroy client */ destruct(): void; }