/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Subscription } from 'rxjs';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { ElementRef, EventEmitter, NgZone, ChangeDetectorRef, Injector, Renderer2, SimpleChanges, QueryList } from '@angular/core';
import { IconShowOptions } from './models/icon-show-options';
import { SuffixTemplateDirective, PrefixTemplateDirective } from '@progress/kendo-angular-common';
import { TextBoxSuffixTemplateDirective } from './textbox-suffix.directive';
import { TextBoxPrefixTemplateDirective } from './textbox-prefix.directive';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { SVGIcon } from '@progress/kendo-angular-icons';
import { InputSize, InputRounded, InputFillMode, InputType } from '../common/models';
import * as i0 from "@angular/core";
/**
* Represents the Kendo UI TextBox component for Angular.
* Use this component to create styled and feature-rich text input fields.
*
* @example
* ```html
*
* ```
*
* @remarks
* Supported children components are: {@link TextBoxCustomMessagesComponent}.
*/
export declare class TextBoxComponent implements ControlValueAccessor {
private localizationService;
private ngZone;
private changeDetector;
protected renderer: Renderer2;
private injector;
hostElement: ElementRef;
/**
* @hidden
*/
focusableId: string;
/**
* Sets the `title` attribute of the `input` element of the TextBox.
*
* @remarks
* This property is related to accessibility.
*/
title: string;
/**
* Sets the `type` attribute of the `input` element of the TextBox.
* @default 'text'
*/
type: InputType;
/**
* Sets the disabled state of the TextBox. To disable the component in reactive forms, see [Forms Support](https://www.telerik.com/kendo-angular-ui/components/inputs/textbox/forms#managing-the-textbox-disabled-state-in-reactive-forms).
* @default false
*/
disabled: boolean;
/**
* Sets the read-only state of the component.
* @default false
*/
readonly: boolean;
/**
* Specifies the `tabindex` of the TextBox.
* @default 0
*/
tabindex: number;
/**
* Provides a value for the TextBox.
*/
value: string;
/**
* Highlights the whole value when you click the TextBox.
* @default false
*/
selectOnFocus: boolean;
/**
* Specifies when to show the Success icon ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/textbox/validation-icons)).
*
* @default false
*/
showSuccessIcon: IconShowOptions;
/**
* Specifies when to show the Error icon ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/textbox/validation-icons)).
*
* @default false
*/
showErrorIcon: IconShowOptions;
/**
* Shows a **Clear** button in the TextBox.
* @default false
*/
clearButton: boolean;
/**
* Sets a custom icon for valid user input.
*/
successIcon: string;
/**
* Sets a custom SVG icon for valid user input.
*/
successSvgIcon: SVGIcon;
/**
* Sets a custom icon for invalid user input.
*/
errorIcon: string;
/**
* Sets a custom SVG icon for invalid user input.
*/
errorSvgIcon: SVGIcon;
/**
* Sets a custom icon for the **Clear** button.
*/
clearButtonIcon: string;
/**
* Sets a custom SVG icon for the **Clear** button.
*/
clearButtonSvgIcon: SVGIcon;
/**
* Sets the padding of the TextBox internal input element ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/textbox/appearance#size)). The default value is set by the Kendo theme.
*/
set size(size: InputSize);
get size(): InputSize;
/**
* Sets the border radius of the TextBox ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/textbox/appearance#roundness)). The default value is set by the Kendo theme.
*/
set rounded(rounded: InputRounded);
get rounded(): InputRounded;
/**
* Sets the background and border styles of the TextBox ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/textbox/appearance#fill-mode)). The default value is set by the Kendo theme.
*/
set fillMode(fillMode: InputFillMode);
get fillMode(): InputFillMode;
/**
* @hidden
*/
set tabIndex(tabIndex: number);
get tabIndex(): number;
/**
* Sets the placeholder text displayed when the component is empty.
*/
placeholder: string;
/**
* Sets the maximum length of the TextBox value.
*/
maxlength: number;
/**
* Sets the HTML attributes of the inner focusable input element. You cannot change attributes that are essential for component functionality.
*/
set inputAttributes(attributes: {
[key: string]: string;
});
get inputAttributes(): {
[key: string]: string;
};
/**
* Fires when the value changes—when the component is blurred or the value is cleared through the **Clear** button ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/textbox/events)).
* Does not fire when you change the value programmatically through `ngModel` or `formControl`.
*/
valueChange: EventEmitter;
/**
* Fires when the user focuses the `input` element.
*/
inputFocus: EventEmitter;
/**
* Fires when the `input` element is blurred.
*/
inputBlur: EventEmitter;
/**
* Fires when the user focuses the TextBox component.
*
*/
onFocus: EventEmitter;
/**
* Fires when the TextBox component is blurred.
*
*/
onBlur: EventEmitter;
/**
* Gets a reference to the visible `input` element of the TextBox.
*/
input: ElementRef;
/**
* @hidden
*/
textBoxSuffixTemplate: QueryList;
/**
* @hidden
*/
textBoxPrefixTemplate: QueryList;
/**
* @hidden
*/
suffixTemplate: SuffixTemplateDirective;
/**
* @hidden
*/
prefixTemplate: PrefixTemplateDirective;
get disabledClass(): boolean;
hostClasses: boolean;
direction: string;
/**
* @hidden
*/
showClearButton: boolean;
/**
* @hidden
*/
clearButtonClicked: boolean;
/**
* @hidden
*/
suffix: TextBoxSuffixTemplateDirective | SuffixTemplateDirective;
/**
* @hidden
*/
prefix: TextBoxPrefixTemplateDirective | PrefixTemplateDirective;
protected control: NgControl;
protected subscriptions: Subscription;
private _isFocused;
private focusChangedProgrammatically;
private _inputAttributes;
private _size;
private _rounded;
private _fillMode;
private parsedAttributes;
private get defaultAttributes();
constructor(localizationService: LocalizationService, ngZone: NgZone, changeDetector: ChangeDetectorRef, renderer: Renderer2, injector: Injector, hostElement: ElementRef);
ngOnInit(): void;
ngAfterViewInit(): void;
ngAfterContentInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
/**
* @hidden
*/
svgIcon(name: string): SVGIcon;
/**
* Focuses the TextBox.
*/
focus(): void;
/**
* Removes focus from the TextBox.
*/
blur(): void;
/**
* @hidden
*/
handleInputFocus: () => void;
/**
* @hidden
*/
handleInputBlur: () => void;
/**
* @hidden
*/
handleInput: (ev: any) => void;
/**
* @hidden
*/
clearTitle(): string;
/**
* @hidden
*/
checkClearButton(): void;
/**
* @hidden
*/
clearValue(ev?: any): void;
/**
* @hidden
*/
writeValue(value: string): void;
/**
* @hidden
*/
registerOnChange(fn: () => any): void;
/**
* @hidden
*/
registerOnTouched(fn: () => any): void;
/**
* @hidden
* Called when the status of the component changes to or from `disabled`.
* Depending on the value, it enables or disables the appropriate DOM element.
*
* @param isDisabled
*/
setDisabledState(isDisabled: boolean): void;
/**
* @hidden
*/
showErrorsInitial(): boolean;
/**
* @hidden
*/
private showSuccessInitial;
/**
* @hidden
*/
get isControlInvalid(): boolean;
/**
* @hidden
*/
get successIconClasses(): string;
/**
* @hidden
*/
get customSuccessIconClasses(): string;
/**
* @hidden
*/
get errorIconClasses(): string;
/**
* @hidden
*/
get customIconClasses(): string;
/**
* @hidden
*/
get customClearButtonClasses(): string;
/**
* @hidden
*/
get clearButtonClass(): string;
/**
* @hidden
*/
get hasErrors(): boolean;
/**
* @hidden
*/
get isSuccessful(): boolean;
/**
* @hidden
*/
get isFocused(): boolean;
/**
* @hidden
*/
set isFocused(value: boolean);
/**
* @hidden
*/
get isControlRequired(): boolean;
private ngChange;
private ngTouched;
private setSelection;
private selectAll;
private updateValue;
/**
* @hidden
*/
handleFocus(): void;
/**
* @hidden
*/
handleBlur(): void;
private handleClasses;
private configureAdornments;
private setInputAttributes;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}