import { LitElement, PropertyValueMap, nothing } from 'lit';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
import { TypingController } from '../controllers/typing-controller';
import { MemberType } from '../types/members.types';
declare global {
    interface HTMLElementTagNameMap {
        "wy-message-typing": WyMessageTyping;
    }
}
/**
 * Displays typing indicator for messages in a conversation.
 *
 * **Used sub components:**
 *
 * - [`<wy-avatar-group>`](./ui/wy-avatar.ts)
 * - [`<wy-avatar>`](./ui/wy-avatar.ts)
 *
 * @csspart wy-message-typing - Root container for typing indicator.
 * @csspart wy-message - Message container.
 * @csspart wy-message-agent - Modifier for message container when author is agent .
 * @csspart wy-message-author - Message section for the author avatar.
 * @csspart wy-message-content - Message section for the content.
 * @csspart wy-message-meta - Message content section for author names and time.
 * @csspart wy-message-bubble - Message content section for the text bubble containing the bouncer.
 * @csspart wy-bouncer - SVG bouncing graphic.
 * @csspart wy-bouncer-dot - Dot in the SVG bouncer.
 * @csspart wy-bouncer-dot-start - The first dot.
 * @csspart wy-bouncer-dot-middle - The second dot.
 * @csspart wy-bouncer-dot-end - The last dot.
 *
 * @fires {TypingEventType} typing - Emitted when typing state changes.
 */
export declare class WyMessageTyping extends LitElement {
    static styles: import('lit').CSSResult[];
    /** @internal */
    protected exportParts: ShadowPartsController;
    /**
     * Typing controller emitting `typing` events for the current conversation.
     *
     * @fires {TypingEventType} typing - Count of active typers.
     * @internal
     */
    protected typing: TypingController;
    /**
     * Consumed Weavy context used for locale formatting.
     *
     * @internal
     */
    private weavy?;
    /**
     * Conversation id to bind typing updates to.
     */
    conversationId?: number;
    /**
     * Current user id used to filter typing updates.
     */
    userId?: number;
    /**
     * Render the typing indicator using private chat layout.
     */
    isPrivateChat: boolean;
    /**
     * Members participating in the conversation.
     */
    members: MemberType[];
    /**
     * Active members currently typing.
     *
     * @internal
     */
    private typingMembers;
    /**
     * Names of members currently typing.
     *
     * @internal
     */
    private names;
    /**
     * Timestamp when typing started.
     *
     * @internal
     */
    private typingTime?;
    protected willUpdate(changedProperties: PropertyValueMap<this>): void;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1> | typeof nothing;
}
//# sourceMappingURL=wy-message-typing.d.ts.map