/** * @license Copyright (c) 2003-2026, 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/aichat * @publicApi */ import { type Context, ContextPlugin, type Editor } from '@ckeditor/ckeditor5-core'; import { AIChatController } from './aichatcontroller.js'; import { AIEditing } from '../aicore/aiediting.js'; import { AIChatUI } from './aichatui.js'; import { type AIChatContextConfig } from './model/aichatcontext.js'; import { AIChatHistory } from '../aichathistory/aichathistory.js'; /** * The AI Chat feature. It brings a conversational AI that can be used to aid content creation and editing. It introduces a dynamic chat * interface designed to facilitate rich, multi-turn interactions between users and an AI Assistant. * * You can configure the feature by setting the {@link module:ai/aichat/aichat~AIChatConfig} property. * * See {@link module:ai/aichat/aichatcontroller~AIChatController} to learn about the public API available for this feature. * * Learn more about AI features in CKEditor in the {@glink features/ai/ckeditor-ai-overview AI Overview} documentation. */ export declare class AIChat extends ContextPlugin { /** * @inheritDoc */ static get requires(): readonly [typeof AIChatController, typeof AIEditing, typeof AIChatUI, typeof AIChatHistory]; /** * @inheritDoc */ static get pluginName(): "AIChat"; /** * @inheritDoc */ static get isOfficialPlugin(): true; /** * @inheritDoc */ static get isPremiumPlugin(): true; constructor(context: Context | Editor); } /** * The configuration of the {@link module:ai/aichat/aichat~AIChat AI Chat feature}. * * The properties defined in this config are set in the `config.ai.chat` namespace. * * ```ts * ClassicEditor * .create( { * ai: { * chat: { * // AI Chat configuration. * } * } * } ) * .then( ... ) * .catch( ... ); * ``` * * See {@link module:ai/aiconfig~AIConfig the full AI configuration}. * * See {@link module:core/editor/editorconfig~EditorConfig all editor options}. */ export interface AIChatConfig { /** * The configuration of the AI Chat context. * * Read more in {@link module:ai/aichat/model/aichatcontext~AIChatContextConfig}. */ context: AIChatContextConfig; /** * Decides which conversation will be loaded after the feature has initialized. * * Possible values are: * * * `'new'` - a new conversation is started (default), * * `'lastCreated'` - the most recently created conversation will be loaded, * * conversation ID - the conversation with given ID will be loaded. * * If `'lastCreated'` is set while the conversation history is empty, a new conversation will be started instead. * * If the conversation with the specified ID is not found, an error will be thrown. * * @default 'new' */ initialConversation?: string; /** * The welcome message to be displayed when the AI chat is initialized. When not set, the default welcome message will be used. * * @default 'Hi! I can help you draft, rewrite, and improve your text, explore ideas, research topics, and solve problems. How can I help right now?' */ welcomeMessage?: string; }