@ckeditor/ckeditor5-ai
Version:
AI features for CKEditor 5.
72 lines (71 loc) • 2.37 kB
TypeScript
/**
* @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/
/**
* @module ai/aichat/aichatcontroller
*/
import { ContextPlugin } from 'ckeditor5/src/core.js';
import { AIConnector } from '../aicore/aiconnector.js';
import { AIChatConversation } from './model/aichatconversation.js';
import { DocumentCompare } from 'ckeditor5-collaboration/src/collaboration-core.js';
import { AIBalloon } from '../aiballoon/aiballoon.js';
import { type AIQuickActionRequestData } from '../aiquickactions/aiquickactions.js';
export declare class AIChatController extends ContextPlugin {
/**
* Active conversation (currently open and visible in UI).
*
* @observable
*/
activeConversation?: AIChatConversation;
/**
* @inheritDoc
*/
static get requires(): readonly [typeof AIConnector, typeof AIBalloon, typeof DocumentCompare];
/**
* @inheritDoc
*/
static get pluginName(): "AIChatController";
/**
* @inheritDoc
*/
static get isOfficialPlugin(): true;
/**
* @inheritDoc
*/
static get isPremiumPlugin(): true;
/**
* @inheritDoc
*/
init(): void;
/**
* @inheritDoc
*/
afterInit(): Promise<void>;
/**
* Loads a conversation by its ID and sets it as the active conversation.
*/
loadConversation(conversationId: string): Promise<void>;
/**
* Handles the removal of a conversation from the history.
* If the removed conversation is currently active, it starts a new conversation.
*/
handleRemovedConversation(conversationId: string): void;
addSelectionToChatContext(): Promise<void>;
removeSelectionFromChatContext(): void;
focusPromptInput(): void;
startConversation(): Promise<void>;
sendMessage({ message, quickActionData }: {
message: string;
quickActionData?: AIQuickActionRequestData;
}): Promise<void>;
/**
* Gets the group ID for the current editor.
*/
getGroupId(): string;
/**
* Starts an AI chat conversation safely, catching and logging any errors.
*/
protected _startConversationSafely(id?: string): Promise<void>;
updateConversationTitle(title: string | undefined, shouldAnimate?: boolean): void;
}