/** * @license * Copyright 2024 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement } from 'lit'; import type { PresenceUser, PresenceChatMessage } from './presence.types.js'; declare const NrPresenceChatElement_base: (new (...args: any[]) => import("@nuralyui/common/mixins").DependencyAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").ThemeAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").EventHandlerCapable) & (new (...args: any[]) => import("packages/common/src/shared/base-mixin.js").LightDomContent) & typeof LitElement; /** * A floating, draggable, minimizable chat panel. * Pure UI — all state owned by parent (`nr-presence`). * * @fires drag-start - User started dragging header. Detail: `{ offsetX, offsetY }` * @fires minimize - Minimize button clicked * @fires restore - Minimized header clicked (open above slot) * @fires float - Float/detach button clicked (restore to saved pos) * @fires close - Close button clicked * @fires send - Message sent. Detail: `{ text: string }` * @fires focus - Panel mousedown (bring to front) */ export declare class NrPresenceChatElement extends NrPresenceChatElement_base { static styles: import("lit").CSSResult; static useShadowDom: boolean; /** User this chat is with */ user: PresenceUser; /** Panel left position (px) */ x: number; /** Panel top position (px) */ y: number; /** z-index */ z: number; /** Minimized state */ minimized: boolean; /** Position index in bottom minimized strip (0, 1, 2…) */ minimizedIndex: number; /** Chat messages array */ messages: PresenceChatMessage[]; /** Loading state (while DM is being created/loaded) */ loading: boolean; private _draft; private _emit; private _onHeaderMousedown; private _onHeaderClick; private _onSend; private _onInputKeydown; updated(): void; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'nr-presence-chat': NrPresenceChatElement; } } export {}; //# sourceMappingURL=presence-chat.component.d.ts.map