import { LitElement } from 'lit'; import type { ComposerVariant } from '../../types/index.js'; import './define-prompt-input.js'; import './define-drop-zone.js'; /** * @tag loquix-chat-composer * @summary Composite input area with a prompt input, send button, and optional toolbars. * * @csspart composer - Outer wrapper. * @csspart container - The bordered container (contained variant only). * @csspart toolbar - Toolbar areas (top and bottom). * @csspart actions-bar - The bottom bar with actions and send button (contained variant). * @csspart send-button - The send / submit button. * * @slot toolbar-top - Content above the input area. * @slot input - Override the default prompt input. * @slot suggestions - Suggestion chips below the input. * @slot toolbar-bottom - Content below the input area. * @slot actions-left - Left side of actions bar (contained variant): file upload, model selector, etc. * @slot actions-right - Right side of actions bar before send button (contained variant). * @slot footer - Footer area at the bottom. * * @fires loquix-submit - Bubbled from the inner prompt input or send button. * * @cssprop [--loquix-composer-bg] - Background of the composer area. * @cssprop [--loquix-composer-border-color] - Top border colour. * @cssprop [--loquix-composer-padding] - Inner padding. * @cssprop [--loquix-composer-gap] - Gap between sections. * @cssprop [--loquix-composer-container-bg] - Container background (contained variant). * @cssprop [--loquix-composer-container-border-color] - Container border colour (contained variant). * @cssprop [--loquix-composer-container-border-radius] - Container border radius (contained variant). * @cssprop [--loquix-send-button-bg] - Send button background. * @cssprop [--loquix-send-button-color] - Send button icon colour. */ export declare class LoquixChatComposer extends LitElement { static styles: import("lit").CSSResult[]; private _localize; /** Layout variant: 'contained' = Claude/ChatGPT style, 'default' = classic side-by-side. */ variant: ComposerVariant; /** Placeholder text passed to the inner prompt input. */ placeholder?: string; /** Whether the composer is disabled (input + button). */ disabled: boolean; /** Whether submission is disabled (button + Enter) while input remains active. */ submitDisabled: boolean; /** Whether AI generation is currently streaming. */ streaming: boolean; /** Maximum character length (0 = unlimited). */ maxLength: number; /** Internal tracking of whether the input has content. */ private _hasContent; private _inputValue; private _boundHandlePasteFiles; connectedCallback(): void; disconnectedCallback(): void; private _handlePasteFiles; private _handleDrop; private _handleInputChange; private _handleSubmitFromInput; private _handleSendClick; private _handleStopClick; private _renderSendButton; private _renderStopButton; private _renderDefaultLayout; private _renderContainedLayout; protected render(): import("lit").TemplateResult<1>; } //# sourceMappingURL=loquix-chat-composer.d.ts.map