/**
 * @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<AIModelData>, 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];
};
