import { LitElement, type PropertyValues } from 'lit'; import type { MessageRole, MessageStatus, ActionsPlacement, Size } from '../../types/index.js'; import './define-message-avatar.js'; import './define-message-content.js'; import './define-message-actions.js'; import './define-typing-indicator.js'; import './define-action-edit.js'; /** * @tag loquix-message-item * @summary Composite message bubble with optional avatar, content, and action toolbar. * * @csspart container - Outer wrapper of the message row. * @csspart bubble-column - Wrapper around above-bubble slot, bubble, and below-bubble slot. * @csspart bubble - The message bubble area. * @csspart header - Header area inside the bubble (model name, timestamp). * @csspart actions - Actions toolbar area. * * @slot avatar - Override the default avatar. * @slot header - Override the header content. * @slot above-bubble - Content rendered above the bubble (e.g. attachments without bubble background). * @slot - Default slot for message content. * @slot below-bubble - Content rendered below the bubble (e.g. metadata, attachments). * @slot actions - Override the default actions toolbar. * @slot footer - Footer area below the bubble. * * @cssprop [--loquix-message-user-bg] - Background for user messages. * @cssprop [--loquix-message-assistant-bg] - Background for assistant messages. * @cssprop [--loquix-message-error-border-color] - Border colour for error state. * @cssprop [--loquix-message-gap] - Gap between avatar and bubble. * @cssprop [--loquix-message-bubble-radius] - Border radius of the bubble. * @cssprop [--loquix-message-bubble-padding] - Inner padding of the bubble. * @cssprop [--loquix-message-max-width] - Maximum width of the bubble. */ export declare class LoquixMessageItem extends LitElement { static styles: import("lit").CSSResult[]; private _localize; /** Role of the message sender. */ sender: MessageRole; /** Current status of the message. */ status: MessageStatus; /** Model name to display in the header. */ model?: string; /** Timestamp string to display in the header. */ timestamp?: string; /** Unique message identifier. */ messageId?: string; /** Whether private mode is on (hides model info). */ privateMode: boolean; /** Whether to show the avatar column. Hidden by default. */ showAvatar: boolean; /** Size of the built-in avatar when shown. */ avatarSize: Size; /** Placement of the actions toolbar relative to the bubble. */ actionsPosition: ActionsPlacement; /** Max height (px) for user message content before collapsing. 0 = no limit. */ collapseHeight: number; /** Whether the user message is currently collapsed. */ private _collapsed; /** Whether the content overflows the collapse height. */ private _overflows; private _contentEl; /** Whether inline editing is active. */ private _editing; /** Content snapshot for inline editing. */ private _editContent; /** Custom labels captured from the trigger element. */ private _editSubmitLabel; private _editCancelLabel; private _editPlaceholder; private _resizeObserver; private _dispatching; connectedCallback(): void; protected firstUpdated(): void; protected updated(changed: PropertyValues): void; disconnectedCallback(): void; private _observeContent; private _checkOverflow; private _handleToggleCollapse; /** True only when the user message actually needs collapsing right now. */ private get _isCollapsed(); private _renderShowMore; private _renderHeader; private _renderContent; /** Extract text content from the default (unnamed) slot, excluding attachment components. */ private _getMessageText; private _onCopy; private _onRegenerate; private _onFeedback; private _onEditStart; private _onEditSubmit; private _onEditCancel; /** Reset editing state on any slotted action-edit triggers. */ private _resetEditTriggers; private get _isInline(); /** Whether inline actions go on the same side as the avatar. */ private get _inlineOnAvatarSide(); private _renderActions; private _renderErrorRetry; private _handleRetry; protected render(): import("lit").TemplateResult<1>; } //# sourceMappingURL=loquix-message-item.d.ts.map