/** * @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/ui/controls/aichatpromptcapabilitiesview */ import { type Locale } from '@ckeditor/ckeditor5-utils'; import { View } from '@ckeditor/ckeditor5-ui'; import { type AIModelData } from '../../../aicore/aiconnector.js'; /** * Manages the prompt capabilities UI for AI chat, including web search, commands functionality, and model selection. */ export declare class AIChatPromptCapabilitiesView extends View { /** * Indicates whether the web search is active. * * @observable */ webSearchActive: boolean; /** * Indicates whether reasoning is active. * * @observable */ reasoningActive: boolean; /** * Determines the model display mode: * * 'selector' – shows the dropdown, * * 'name' – shows the model name, * * 'hidden' – hides both. * * @observable */ modelDisplayMode: 'selector' | 'name' | 'hidden'; /** * Indicates whether the model selection UI is enabled. The selection gets disabled * after the first message is sent to the API, as the model cannot be changed then. * * @observable */ modelSelectorEnabled: boolean; /** * The ID of the currently active model. * * @observable */ activeModelId: string | null; /** * The name of the currently active model. * * @observable */ activeModelName: string | null; constructor(locale: Locale); /** * Sets model list dropdown. */ setModelList(models: Array, hideModels: boolean): void; /** * Sets the web search state. */ setWebSearch(isWebSearchEnabled: boolean): void; /** * Sets the reasoning state. */ setReasoning(isReasoningEnabled: boolean): void; /** * Sets the selected model. */ setModel(model: AIModelData | null): void; /** * Enables the model selector dropdown. */ enableModelSelector(): void; /** * Disables the model selector dropdown. */ disableModelSelector(hideSelector: boolean): void; } export type AIChatUIToggleWebSearchEvent = { name: 'toggleWebSearch'; args: []; }; export type AIChatUIToggleReasoningEvent = { name: 'toggleReasoning'; args: []; }; export type AIChatUISelectModelEvent = { name: 'selectModel'; args: [model: AIModelData]; };