import { IEventEmitter } from '@breadstone/mosaik-elements'; import { ISlottable } from '../../../Behaviors/Slottable'; import { IAttachmentAddEventDetail, IAttachmentRemoveEventDetail, IChatSubmitEventDetail } from '../../../events'; import { CustomElement } from '../../Abstracts/CustomElement'; import { ChatInputAttachmentListElement } from './ChatInputAttachmentListElement'; import type { IChatInputElementProps } from './IChatInputElementProps'; declare const ChatInputElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Slottable").ISlottableProps & ISlottable) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * Chat Input - Represents the input area for sending messages in the chat. * * @slot tools - The tools slot. * * @csspart attachments - The attachments part. * @csspart begin - The begin part. * @csspart end - The end part. * @csspart focusRing - The focusRing part. * @csspart textBox - The textBox part. * @csspart tools - The tools part. * * @cssprop {String} --chat-input-background-color - The input background color CSS custom property. * @cssprop {String} --chat-input-border-color - The input border color CSS custom property. * @cssprop {String} --chat-input-border-radius - The input border radius CSS custom property. * @cssprop {String} --chat-input-border-style - The input border style CSS custom property. * @cssprop {String} --chat-input-border-width - The input border width CSS custom property. * @cssprop {String} --chat-input-font-family - The input font family CSS custom property. * @cssprop {String} --chat-input-font-letter-spacing - The input font letter spacing CSS custom property. * @cssprop {String} --chat-input-font-line-height - The input font line height CSS custom property. * @cssprop {String} --chat-input-font-size - The input font size CSS custom property. * @cssprop {String} --chat-input-font-text-decoration - The input font text decoration CSS custom property. * @cssprop {String} --chat-input-font-text-transform - The input font text transform CSS custom property. * @cssprop {String} --chat-input-font-weight - The input font weight CSS custom property. * @cssprop {String} --chat-input-foreground-color - The input foreground color CSS custom property. * @cssprop {String} --chat-input-gap - The input gap CSS custom property. * @cssprop {String} --chat-input-padding-bottom - The input padding bottom CSS custom property. * @cssprop {String} --chat-input-padding-left - The input padding left CSS custom property. * @cssprop {String} --chat-input-padding-right - The input padding right CSS custom property. * @cssprop {String} --chat-input-padding-top - The input padding top CSS custom property. * @cssprop {String} --chat-input-shadow - The input shadow CSS custom property. * @cssprop {String} --chat-input-shadow-blur - The input shadow blur CSS custom property. * @cssprop {String} --chat-input-shadow-color - The input shadow color CSS custom property. * @cssprop {String} --chat-input-shadow-offset-x - The input shadow offset x CSS custom property. * @cssprop {String} --chat-input-shadow-offset-y - The input shadow offset y CSS custom property. * @cssprop {String} --chat-input-shadow-spread - The input shadow spread CSS custom property. * @cssprop {String} --chat-input-transition-duration - The input transition duration CSS custom property. * @cssprop {String} --chat-input-transition-mode - The input transition mode CSS custom property. * @cssprop {String} --chat-input-transition-property - The input transition property CSS custom property. * @cssprop {String} --chat-input-translate - The input translate CSS custom property. * * @fires chatSubmit {ChatSubmitEvent} - Called when a new message is submitted. * * @dependency mosaik-button - The Button element. * @dependency mosaik-chat-input-attachment-list - The Chat Input Attachment List element. * @dependency mosaik-focus-ring - The Focus Ring element. * @dependency mosaik-textbox - The Textbox element. * * @example * Basic chat input: * ```html * * ``` * * @example * Disabled chat input: * ```html * * ``` * * @public */ export declare class ChatInputElement extends ChatInputElement_base implements IChatInputElementProps, ISlottable { private _attachmentsElement; private readonly _submitted; private readonly _transformer; private _value; private _placeholder; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the `value` property. * * @public */ get value(): { message: string; files: Array; }; set value(value: { message: string; files: Array; }); /** * Gets or sets the `placeholder` property. * * @public */ get placeholder(): string; set placeholder(value: string); /** * Called when a new message is submitting. * Provides reference to `IChatSubmitEventDetail` as event detail. * * @public * @readonly * @eventProperty */ get submitted(): IEventEmitter; /** * @private */ get attachmentsElement(): ChatInputAttachmentListElement; /** * @public */ send(message: string, files?: FileList | Array): void; /** * @public */ clear(): void; /** * @private * @template */ onInput(e: InputEvent): void; /** * @private * @template */ onKeyup(e: KeyboardEvent): void; /** * @private * @template */ onAttachmentAdded(detail: IAttachmentAddEventDetail): void; /** * @private * @template */ onAttachmentRemoved(detail: IAttachmentRemoveEventDetail): void; onApplyTemplate(): void; /** * @public * @override */ onSlotChanges(slotName?: string): void; /** * Emits the `submitted` event. * * @protected */ protected onSubmitted(args: IChatSubmitEventDetail): void; } /** * @public */ export declare namespace ChatInputElement { type Props = IChatInputElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-chat-input': ChatInputElement; } } export {}; //# sourceMappingURL=ChatInputElement.d.ts.map