/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { Subscription } from 'rxjs';
import { SVGIcon } from '@progress/kendo-svg-icons';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { IntegrationMode } from './models/integration-mode';
import { SpeechToTextResultEvent } from './models/result-event';
import { SpeechToTextErrorEvent } from './models/error-event';
import { ButtonFillMode, ButtonRounded, ButtonSize, ButtonThemeColor } from '../common/models';
import * as i0 from "@angular/core";
/**
* Represents the Kendo UI SpeechToTextButton component for Angular.
*
* @example
* ```html
*
* ```
*/
export declare class SpeechToTextButtonComponent implements OnInit, OnDestroy {
renderer: Renderer2;
ngZone: NgZone;
/**
* When `true`, disables the SpeechToTextButton and prevents user interaction.
*
* @default false
*/
set disabled(disabled: boolean);
get disabled(): boolean;
/**
* Sets the padding of the SpeechToTextButton. The default value is set by the Kendo theme.
*
*/
set size(size: ButtonSize);
get size(): ButtonSize;
/**
* Sets the border radius of the SpeechToTextButton. The default value is set by the Kendo theme.
*
*/
set rounded(rounded: ButtonRounded);
get rounded(): ButtonRounded;
/**
* Sets the background and border styles of the SpeechToTextButton. The default value is set by the Kendo theme.
*/
set fillMode(fillMode: ButtonFillMode);
get fillMode(): ButtonFillMode;
/**
* Sets a predefined theme color for the SpeechToTextButton. The default value is set by the Kendo theme.
* The theme color applies as a background and border color and adjusts the text color for contrast.
*
*/
set themeColor(themeColor: ButtonThemeColor);
get themeColor(): ButtonThemeColor;
/**
* 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 a `BCP 47` language tag (e.g., 'en-US', 'bg-BG') used for speech recognition.
*
* @default 'en-US'
*/
lang: string;
/**
* Specifies whether continuous results are returned for each recognition, or only a single result once recognition stops.
*
* @default false
*/
continuous: boolean;
/**
* Specifies whether interim results should be returned or not. Interim results are results that are not yet final.
*
* @default false
*/
interimResults: boolean;
/**
* Represents the maximum number of alternative transcriptions to return for each result.
*
* @default 1
*/
maxAlternatives: number;
/**
* Fires when the speech recognition service has begun listening to incoming audio.
*/
start: EventEmitter;
/**
* Fires when the speech recognition service has disconnected.
*/
end: EventEmitter;
/**
* Fires when the speech recognition service returns a result - a word or phrase has been positively recognized.
*/
result: EventEmitter;
/**
* Fires when a speech recognition error occurs. The event argument is a string, containing the error message.
*/
error: EventEmitter;
/**
* Fires when the user clicks the SpeechToTextButton.
*/
click: EventEmitter;
get iconButtonClass(): boolean;
get listeningClass(): boolean;
speechToTextButtonClass: boolean;
classButton: boolean;
get classDisabled(): boolean;
get getDirection(): string;
get ariaPressed(): boolean;
/**
* @hidden
*/
onFocus(): void;
/**
* @hidden
*/
onBlur(): void;
/**
* Focuses the SpeechToTextButton component.
*/
focus(): void;
/**
* Removes focus from the SpeechToTextButton component.
*/
blur(): void;
ngOnInit(): void;
ngOnChanges(changes: any): void;
ngOnDestroy(): void;
constructor(element: ElementRef, renderer: Renderer2, localization: LocalizationService, ngZone: NgZone);
/**
* Indicates whether the button is actively listening for incoming audio.
*/
isListening: boolean;
/**
* Indicates whether web speech functionality is supported.
*/
get isWebSpeechSupported(): boolean;
set isFocused(isFocused: boolean);
get isFocused(): boolean;
/**
* @hidden
*/
get hasText(): boolean;
/**
* @hidden
*/
onClick(): void;
/**
* @hidden
*/
get buttonSvgIcon(): SVGIcon;
/**
* @hidden
*/
get buttonIcon(): string;
/**
* @hidden
*/
element: HTMLElement;
/**
* @hidden
*/
isDisabled: boolean;
/**
* @hidden
*/
subs: Subscription;
private microphoneSvgIcon;
private stopSvgIcon;
private speechRecognition;
private _size;
private _rounded;
private _fillMode;
private _themeColor;
private _focused;
private direction;
private handleClasses;
private handleStart;
private handleEnd;
private handleResult;
private handleError;
private toObservable;
private handleThemeColor;
private destroyWebSpeech;
private createWebSpeech;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}