/** * @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/aichatballoon */ import { type Editor, Plugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core"; import { AIBalloon, type AIBalloonConfig } from "../aiballoon/aiballoon.js"; import { type AISuggestionContentPartDefinition } from "../aicore/utils/getsuggestionpartsfromreply.js"; import { type AIContentRenderingStrategy } from "../aicore/ui/suggestioncontainer/aisuggestionstreamablecontentview.js"; import { type AIReplyChangeGroupState, type AIReplyChangeGroupOutdatedReason } from "../aicore/model/aireply.js"; import { Dialog } from "@ckeditor/ckeditor5-ui"; /** * The plugin responsible for the AI Balloon dialog in the Chat UI. * * * It depends on the API of the `AIBalloon` plugin. * * It uses the `AIChatBalloonView` to display the suggestion part in the `AIBalloon`. */ export declare class AIChatBalloon extends Plugin { /** * @inheritDoc */ static get requires(): PluginDependenciesOf<[Dialog, AIBalloon]>; /** * @inheritDoc */ static get pluginName(): "AIChatBalloon"; /** * @inheritDoc */ static override get isOfficialPlugin(): true; /** * @inheritDoc */ static override get isPremiumPlugin(): true; /** * Observable property that indicates whether the suggestion display mode is "show changes". */ showDiff: boolean; /** * @inheritDoc */ constructor(editor: Editor); /** * Opens the AI Balloon dialog. */ open(config: Omit): void; /** * Closes the AI Balloon dialog. */ close(): void; /** * Updates the content of the suggestion part displayed in the balloon. */ updateContent(options: { part: AISuggestionContentPartDefinition; renderingStrategy: AIContentRenderingStrategy; abortSignal?: AbortSignal; keepErrors?: boolean; }): Promise; /** * Clears the content of the suggestion part displayed in the balloon. */ clearContent(): void; /** * Sets the state of the suggestion part displayed in the balloon (accepted, rejected, pending, etc.). */ setState(state: AIReplyChangeGroupState, outdatedReason?: AIReplyChangeGroupOutdatedReason): void; /** * Updates the read-only state of the previewed suggestion's target editor. Called by the controller. */ setTargetReadOnly(isReadOnly: boolean): void; } type AIChatBalloonConfig = AIBalloonConfig & { areActionsDisabled: boolean; showRotator: boolean; isTargetReadOnly: boolean; }; /** * Event fired when user toggles the suggestion display mode. */ export type AIChatBalloonToggleSuggestionDisplayModeEvent = { name: "toggleSuggestionDisplayMode"; args: []; }; /** * Event fired when user clicks the apply button to apply a suggestion. */ export type AIChatBalloonApplySuggestionEvent = { name: "applySuggestion"; args: []; }; /** * Event fired when user clicks the suggest button to insert a suggestion. */ export type AIChatBalloonInsertSuggestionEvent = { name: "insertSuggestion"; args: []; }; /** * Event fired when user clicks the reject button to reject a suggestion. */ export type AIChatBalloonRejectSuggestionEvent = { name: "rejectSuggestion"; args: []; }; export {};