UNPKG

@ckeditor/ckeditor5-ai

Version:

AI features for CKEditor 5.

72 lines (71 loc) 2.37 kB
/** * @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; }