import { LitElement, PropertyValues } from 'lit';
import { ConversationType } from '../types/conversations.types';
import { MessageMutationContextType, MessageType, MessagesResultType, MutateMessageProps } from '../types/messages.types';
import { InfiniteQueryController } from '../controllers/infinite-query-controller';
import { ReverseInfiniteScrollController } from '../controllers/infinite-scroll-controller';
import { MutationController } from '../controllers/mutation-controller';
import { Ref } from 'lit/directives/ref.js';
import { PollMutationType } from '../data/poll';
import { MarkConversationMutationType } from '../data/conversation';
import { WeavyProps } from '../types/weavy.types';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
declare const WyConversation_base: import('../types/generic.types').Constructor<import('../mixins/block-mixin').BlockContextProviderProps & import('../mixins/block-mixin').BlockContextProps> & typeof LitElement;
export default class WyConversation extends WyConversation_base {
    #private;
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    conversation?: ConversationType;
    conversationId?: number;
    cssClass?: string;
    lastReadMessagePosition: "above" | "below";
    lastReadMessageId?: number;
    lastReadMessageShow: boolean;
    /**
     * A keyboard-consuming element releases focus.
     * @event release-focus
     */
    releaseFocusEvent: () => CustomEvent<undefined>;
    isPrivateChat(conversation?: ConversationType): boolean;
    isChatRoom(conversation?: ConversationType): boolean;
    protected markConversationMutation?: MarkConversationMutationType;
    messagesQuery: InfiniteQueryController<MessagesResultType>;
    private updateConversationMutation?;
    protected pollMutation?: PollMutationType;
    protected addMessageMutation: MutationController<MessageType, Error, MutateMessageProps, MessageMutationContextType>;
    protected infiniteScroll: ReverseInfiniteScrollController;
    protected pagerRef: Ref<HTMLElement>;
    protected shouldBeAtBottom: boolean;
    protected handleTyping(e: CustomEvent): Promise<void>;
    protected handleSubmit(e: CustomEvent): Promise<MessageType>;
    setEmptyConversationTitle(name: string): Promise<void>;
    private handleRealtimeMessage;
    private handleRealtimeReactionAdded;
    private handleRealtimeReactionDeleted;
    get isAtBottom(): boolean;
    scrollToBottom(smooth?: boolean): Promise<void>;
    showUnread(placement: "above" | "below", messageId?: number): void;
    hideUnread(): void;
    markAsRead(messageId?: number, instantly?: boolean): Promise<void>;
    protected markAsReadWhenVisible: () => void;
    protected willUpdate(changedProperties: PropertyValues<this & WeavyProps>): void;
    protected update(changedProperties: PropertyValues<this>): void;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
    updated(): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
}
export {};
//# sourceMappingURL=wy-conversation.d.ts.map