import { EventEmitter } from '../../stencil-public-runtime'; declare const ChatInput_base: abstract new (...args: any[]) => { componentDidLoad(): void; disconnectedCallback(): void; hostElement?: import("@stencil/core/internal").HTMLStencilElement; connectedCallback?(): void; componentWillRender?(): Promise | void; componentDidRender?(): void; componentWillLoad?(): Promise | void; componentShouldUpdate?(newVal: any, oldVal: any, propName: string): boolean | void; componentWillUpdate?(): Promise | void; componentDidUpdate?(): void; render?(): any; } & import("../utils/internal/component").StencilLifecycle & { $internal_id: number; getHostElementId(): string; hostElement?: import("@stencil/core/internal").HTMLStencilElement; connectedCallback?(): void; disconnectedCallback?(): void; componentWillRender?(): Promise | void; componentDidRender?(): void; componentWillLoad?(): Promise | void; componentDidLoad?(): void; componentShouldUpdate?(newVal: any, oldVal: any, propName: string): boolean | void; componentWillUpdate?(): Promise | void; componentDidUpdate?(): void; render?(): any; }; /** * @since 5.2.0 * @form-ready * @slot follow-up - Optional refresh action and follow-up prompt buttons displayed above the chat input * @slot attachments - Attachments displayed above the prompt text area * @slot start - Element will be displayed in the left action area * @slot end - Element will be displayed in the right action area before the submit button */ export declare class ChatInput extends ChatInput_base { hostElement: HTMLIxChatInputElement; formInternals: ElementInternals; /** * The state of the chat input, which can be either 'input' or 'processing'. */ state?: 'input' | 'processing'; /** * The name of the chat input. */ name?: string; /** * The placeholder text for the chat input. */ placeholder: string; /** * The value of the chat input. */ value: string; /** * Specifies whether the chat input is disabled. */ disabled: boolean; /** * Specifies whether the chat input is readonly. */ readonly: boolean; /** * Accessible label for the native textarea. */ textareaLabel: string; /** * The maximum length of the chat input. */ maxLength?: number; /** * Character limit used for the optional inline character limit message. * Falls back to `maxLength` when not set. */ characterLimit?: number; /** * i18n label for the hard character limit message. * Use `{current}` and `{limit}` placeholders to place the values in any order. */ i18nCharacterLimitReached: string; /** * i18n label for the soft character limit warning. * Use `{current}` and `{limit}` placeholders to place the values in any order. */ i18nCharacterLimitWarning: string; /** * Percentage of the character limit that triggers the soft warning. Define a number between 0 and 1 (e.g. 0.8 for 80%). */ characterLimitWarningThreshold: number; /** * Minimum number of visible text rows. */ minRows: number; /** * Maximum number of visible text rows before the input becomes scrollable. */ maxRows: number; /** * If true, pressing Enter inserts a line break instead of submitting the prompt. */ insertLineBreakOnEnter: boolean; /** * Disclaimer text displayed below the chat input. */ disclaimer: string; /** * Event emitted when the value of the chat input changes. */ valueChange: EventEmitter; /** * Event emitted when the chat input loses focus. */ ixBlur: EventEmitter; /** * Event emitted when the chat input loses focus and the value has changed. */ ixChange: EventEmitter; /** * Event emitted when the prompt is submitted by the send button or Enter key. */ promptSubmit: EventEmitter; /** @internal */ initialValue?: string; hasAttachments: boolean; hasAttachmentScrollbar: boolean; hasFollowUp: boolean; private readonly attachmentsRef; private readonly textareaRef; private attachmentResizeObserver?; private attachmentMutationObserver?; private isAttachmentScrollbarUpdateQueued; componentWillLoad(): void; componentDidLoad(): void; componentDidRender(): void; disconnectedCallback(): void; onValueChange(value: string): void; onRowsChange(): void; updateFormInternalValue(value: string): void; /** @internal */ getAssociatedFormElement(): Promise; /** * Returns the native textarea element used by the chat input. * @since 5.1.0 */ getNativeInputElement(): Promise; /** * Focuses the chat input. * @since 5.1.0 */ focusInput(): Promise; private canSubmit; private emitIxChangeIfNeeded; private submitPrompt; private updateTextareaHeight; private getCharacterLimit; private getNormalizedCharacterLimitWarningThreshold; private isSoftCharacterLimitWarning; private isCharacterLimitReached; private getCharacterLimitMessage; private formatCharacterLimitMessage; private getCharacterLimitState; private handleKeyDown; private renderCharacterLimit; private handleAttachmentsSlotChange; private handleFollowUpSlotChange; private hasAssignedContent; private updateHasFollowUp; private initAttachmentResizeObserver; private initAttachmentMutationObserver; private scheduleAttachmentScrollbarUpdate; private updateAttachmentScrollbar; render(): any; } export {};