/** * @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/aicore/model/aicapabilities * @publicApi */ import { type EmitterMixinConstructor } from "@ckeditor/ckeditor5-utils"; declare const AICapabilitiesBase: EmitterMixinConstructor; export declare const AI_CAPABILITIES_MODEL_EVENT_NAMES: readonly ["capabilitiesUpdated"]; /** * Manages the AI capabilities configuration and state. */ export declare class AICapabilities extends AICapabilitiesBase { constructor(); /** * Initializes the capabilities. */ init(): void; /** * Resets the capabilities configuration to default state. */ reset(): void; /** * Returns the current capabilities configuration. * * @returns The current capabilities configuration. */ getCapabilitiesConfig(): AICapabilitiesConfig; /** * Converts a capabilities configuration to the wire-shape consumed by the AI API endpoints. * * Accepts either the simple chat-style config (`isWebSearchEnabled` / `isReasoningEnabled`) or the advanced * per-call directive (`webSearch` / `reasoning`, where `reasoning` may also be a level string such as `'low'` * or `'minimal'`). */ static getCapabilitiesRequestData(config: AICapabilitiesConfig | AICapabilitiesConfigAdvanced | undefined): AICapabilitiesRequestData; /** * Toggles the web search enabled state. */ toggleWebSearch(): void; /** * Toggles the reasoning enabled state. */ toggleReasoning(): void; /** * Sets the web search enabled state and fires an event with current state. */ setWebSearch(isWebSearchEnabled: boolean): void; /** * Sets the reasoning enabled state and fires an event with current state. */ setReasoning(isReasoningEnabled: boolean): void; } export type AICapabilitiesUpdatedEvent = { name: "capabilitiesUpdated"; args: [AICapabilitiesConfig]; }; export type AICapabilitiesConfig = { isWebSearchEnabled: boolean; isReasoningEnabled: boolean; }; /** * Reasoning level accepted by the AI service. Controls how much effort the model is allowed to spend * on reasoning before producing the final reply. */ export type AIReasoningLevel = "minimal" | "low" | "balanced" | "thorough" | "maximum"; export type AICapabilitiesConfigAdvanced = { webSearch?: boolean; reasoning?: boolean | AIReasoningLevel; }; export type AICapabilitiesRequestData = { webSearch?: object; reasoning?: { level?: AIReasoningLevel; }; }; export {};