/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, Renderer2 } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { SpeechToTextButtonSettings, SpeechToTextErrorEvent, SpeechToTextResultEvent } from '@progress/kendo-angular-buttons';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { FileInfo, SelectEvent } from '@progress/kendo-angular-upload';
import { PromptBoxEndAffixComponent } from './affixes/promptbox-end-affix.component';
import { PromptBoxStartAffixComponent } from './affixes/promptbox-start-affix.component';
import { PromptBoxTopAffixComponent } from './affixes/promptbox-top-affix.component';
import { PromptBoxHeaderTemplateDirective } from './common/header-template.directive';
import { ActionButtonEvent, ActionButtonSettings, FileSelectButtonSettings } from './common/models';
import { PromptBoxMode } from './common/models/promptbox-mode';
import * as i0 from "@angular/core";
/**
* Represents the Kendo UI PromptBox component for Angular.
*
* @example
* ```html
*
* ```
*
* @remarks
* Supported children components are: {@link PromptBoxCustomMessagesComponent}, {@link PromptBoxStartAffixComponent}, {@link PromptBoxEndAffixComponent}, {@link PromptBoxTopAffixComponent}, {@link PromptBoxSpeechToTextButtonComponent}, {@link PromptBoxActionButtonComponent}, {@link PromptBoxFileSelectButtonComponent}.
*
*/
export declare class PromptBoxComponent implements ControlValueAccessor, AfterViewInit {
private changeDetector;
private renderer;
private ngZone;
private localization;
hostElement: ElementRef;
hostClasses: string;
get hostSinglelineClass(): boolean;
get hostMultilineClass(): boolean;
get hostDisabledClass(): boolean;
/**
* Enables or disables the PromptBox.
*
* @default false
*/
disabled: boolean;
/**
* @hidden
*/
focusableId: string;
/**
* Sets the loading state of the **Action** button.
*
* @default false
*/
loading: boolean;
/**
* Sets the placeholder text displayed in the PromptBox when it is empty.
*
* @default ''
*/
placeholder: string;
/**
* Sets the read-only state of the PromptBox. When set to `true`, the PromptBox content cannot be modified but remains accessible.
*
* @default false
*/
readonly: boolean;
/**
* Sets the title attribute of the input or textarea element.
*
* @default ''
*
* @remarks
* This property is related to accessibility.
*/
title: string;
/**
* Sets the mode of the PromptBox. [See example](slug:modes_promptbox).
* @default 'auto'
*/
set mode(promptBoxMode: PromptBoxMode);
get mode(): PromptBoxMode;
/**
* Sets the number of visible text lines in the textarea. Applies only when the `mode` is set to `multi`.
*/
set rows(value: number);
get rows(): number;
/**
* Sets the maximum height of the textarea in pixels.
* The textarea resizes automatically until it reaches this height. When the content exceeds this height, a scrollbar appears.
*/
set maxTextAreaHeight(value: number);
get maxTextAreaHeight(): number;
/**
* Sets the value of the PromptBox.
*/
set value(value: string);
get value(): string;
/**
* Controls the visibility and configuration of the **Action** button in the end affix.
*
* @default true
*/
set actionButton(settings: boolean | ActionButtonSettings);
get actionButton(): boolean | ActionButtonSettings;
/**
* Controls the visibility and configuration of the **File Select** button in the end affix.
*
* @default false
*/
set fileSelectButton(settings: boolean | FileSelectButtonSettings);
get fileSelectButton(): boolean | FileSelectButtonSettings;
/**
* Controls the visibility and configuration of the **Speech to Text** button in the end affix.
*
* @default true
*/
set speechToTextButton(settings: boolean | SpeechToTextButtonSettings);
get speechToTextButton(): boolean | SpeechToTextButtonSettings;
/**
* Fires each time the value of the PromptBox changes.
*/
valueChange: EventEmitter;
/**
* Fires each time the PromptBox is focused.
*/
onFocus: EventEmitter;
/**
* Fires each time the PromptBox gets blurred.
*/
onBlur: EventEmitter;
/**
* Fires each time the internal input element is focused.
*/
inputFocus: EventEmitter;
/**
* Fires each time the internal input element is blurred.
*/
inputBlur: EventEmitter;
/**
* Fires each time you click the **Action** button.
*/
promptAction: EventEmitter;
/**
* Fires each time you select files using the **File Select** button.
*/
selectAttachments: EventEmitter;
/**
* Fires each time you remove a file from the PromptBox.
*/
fileRemove: EventEmitter;
/**
* Fires each time you click the **Speech to Text** button.
*/
speechToTextClick: EventEmitter;
/**
* Fires each time the speech recognition service begins listening to incoming audio.
*/
speechToTextStart: EventEmitter;
/**
* Fires each time the speech recognition service disconnects.
*/
speechToTextEnd: EventEmitter;
/**
* Fires when a speech recognition error occurs.
*/
speechToTextError: EventEmitter;
/**
* Fires when the speech recognition service returns a result.
*/
speechToTextResult: EventEmitter;
/**
* @hidden
*/
inputElement: ElementRef;
/**
* @hidden
*/
textareaElement: ElementRef;
/**
* @hidden
*/
filesList: ElementRef;
/**
* @hidden
*/
headerTemplate: PromptBoxHeaderTemplateDirective;
/**
* @hidden
*/
startAffix: PromptBoxStartAffixComponent;
/**
* @hidden
*/
endAffix: PromptBoxEndAffixComponent;
/**
* @hidden
*/
topAffix: PromptBoxTopAffixComponent;
/**
* @hidden
*/
private speechToTextButtonComponent;
/**
* @hidden
*/
private actionButtonComponent;
/**
* @hidden
*/
private fileSelectButtonComponent;
/**
* @hidden
*/
get hasEndAffixContent(): boolean;
/**
* @hidden
*/
get isActionButtonDisabled(): boolean;
/**
* @hidden
*/
get actionButtonSettings(): ActionButtonSettings;
/**
* @hidden
*/
get fileSelectButtonSettings(): FileSelectButtonSettings;
/**
* @hidden
*/
get speechToTextButtonSettings(): SpeechToTextButtonSettings;
/**
* @hidden
*/
get effectiveRows(): number;
/**
* @hidden
*/
hasExpanded: boolean;
/**
* @hidden
*/
isListening: boolean;
/**
* Provides the currently attached files in the PromptBox component.
*/
attachments: FileInfo[];
/**
* @hidden
*/
filesListScrollAtStart: boolean;
/**
* @hidden
*/
filesListScrollAtEnd: boolean;
/**
* @hidden
*/
hasFilesOverflow: boolean;
private _value;
private _mode;
private _rows;
private initialHeight;
private singleRowHeight;
private singleLineWidth;
private _maxTextAreaHeight;
private _actionButtonSettings;
private _fileSelectButtonSettings;
private _speechToTextButtonSettings;
private hostWidthAtCapture;
private minMultiRowHeight;
private resizeSubscription;
private speechToTextSubscription;
private actionButtonSubscription;
private fileSelectSubscription;
private focusChangedProgrammatically;
private ngTouched;
private ngChange;
constructor(changeDetector: ChangeDetectorRef, renderer: Renderer2, ngZone: NgZone, localization: LocalizationService, hostElement: ElementRef);
ngAfterViewInit(): void;
ngOnDestroy(): void;
/**
* Focuses the PromptBox.
*/
focus(): void;
/**
* Blurs the PromptBox.
*/
blur(): void;
/**
* Clears all attached files from the PromptBox.
*/
clearAttachments(): void;
/**
* @hidden
*/
writeValue(value: string): void;
/**
* @hidden
*/
registerOnChange(fn: (value: string) => void): void;
/**
* @hidden
*/
registerOnTouched(fn: () => void): void;
/**
* @hidden
*/
handleInput: (event: Event) => void;
/**
* @hidden
*/
handleInputFocus: () => void;
/**
* @hidden
*/
handleInputBlur: () => void;
/**
* @hidden
*/
handleKeydown: (event: KeyboardEvent) => void;
/**
* @hidden
*/
handlePromptAction(event: ActionButtonEvent): void;
/**
* @hidden
*/
handleFileSelectAttachments(event: SelectEvent): void;
/**
* @hidden
*/
removeFile(index: number): void;
/**
* @hidden
*/
onFilesListScroll(filesList: HTMLDivElement): void;
/**
* @hidden
*/
handleSpeechToTextClick(event: any): void;
/**
* @hidden
*/
handleSpeechToTextStart(event: any): void;
/**
* @hidden
*/
handleSpeechToTextEnd(event: any): void;
/**
* @hidden
*/
handleSpeechToTextError(event: SpeechToTextErrorEvent): void;
/**
* @hidden
*/
handleSpeechToTextResult(event: SpeechToTextResultEvent): void;
/**
* @hidden
*/
textFor(key: string): string;
/**
* @hidden
*/
private handleFocus;
/**
* @hidden
*/
private handleBlur;
private attachResizeHandler;
private captureInitialDimensions;
private resize;
private resizeMultiMode;
private resizeAutoMode;
private updateHeight;
private shouldCollapse;
private calculateHeight;
private resetTextArea;
private checkFilesListScroll;
private update;
private updateComponentSettings;
private subscribeToSpeechToTextButton;
private subscribeToActionButton;
private subscribeToFileSelectButton;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}