jodit-pro
Version:
PRO Version of Jodit Editor
50 lines (49 loc) • 1.41 kB
TypeScript
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<IAIMessage[]>, parentMessageId: string | null, selectionContexts: ISelectionContext[], conversationOptions?: IConversationOptions): Promise<IAIAssistantResult>;
/**
* 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;
}