/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ButtonFillMode, ButtonRounded, ButtonSize, ButtonThemeColor } from "../../common/models";
import { IntegrationMode } from "./integration-mode";
/**
 * Defines the settings interface for the speech-to-text functionality used in components that integrate the SpeechToTextButton component, such as the AIPrompt ([see example](https://www.telerik.com/kendo-angular-ui/components/conversational-ui/aiprompt/configuration#enabling-speech-to-text)).
 *
 * @example
 * ```typescript
 * const speechSettings: SpeechToTextButtonSettings = {
 *   continuous: true,
 *   lang: 'en-US',
 *   interimResults: false,
 *   disabled: false
 * };
 * ```
 */
export interface SpeechToTextButtonSettings {
    /**
     * Specifies whether the component returns continuous results for each recognition, or only a single result once recognition stops.
     */
    continuous?: boolean;
    /**
     * When `true`, disables the SpeechToTextButton and prevents user interaction.
     */
    disabled?: boolean;
    /**
     * Sets the background and border styles of the SpeechToTextButton.
     */
    fillMode?: ButtonFillMode;
    /**
     * Specifies which speech recognition engine or integration the component should use. Allows the component to operate in different environments or use alternative implementations.
     */
    integrationMode?: IntegrationMode;
    /**
     * Specifies whether the component should return interim results or not. Interim results are results that are not yet final.
     */
    interimResults?: boolean;
    /**
     * Specifies a `BCP 47` language tag (e.g., `'en-US'`, `'bg-BG'`) used for speech recognition.
     */
    lang?: string;
    /**
     * Represents the maximum number of alternative transcriptions to return for each result.
     */
    maxAlternatives?: number;
    /**
     * Sets the border radius of the SpeechToTextButton.
     */
    rounded?: ButtonRounded;
    /**
     * Sets the padding of the SpeechToTextButton.
     */
    size?: ButtonSize;
    /**
     * Sets a predefined theme color for the SpeechToTextButton. The theme color applies as a background and border color and adjusts the text color.
     */
    themeColor?: ButtonThemeColor;
}
