import { AfterViewInit, ChangeDetectorRef, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { ReactionGroupResponse, ReactionResponse, UserResponse } from 'stream-chat';
import { MessageReactionType, DefaultStreamChatGenerics } from '../types';
import { MessageReactionsService } from '../message-reactions.service';
import { CustomTemplatesService } from '../custom-templates.service';
import * as i0 from "@angular/core";
/**
 * The `MessageReactions` component displays the reactions of a message. You can read more about [message reactions](https://getstream.io/chat/docs/javascript/send_reaction/?language=javascript) in the platform documentation.
 */
export declare class MessageReactionsComponent implements OnChanges, OnInit, AfterViewInit, OnDestroy {
    private cdRef;
    private messageReactionsService;
    customTemplatesService: CustomTemplatesService;
    /**
     * The id of the message the reactions belong to
     */
    messageId: string | undefined;
    /**
     * The number of reactions grouped by [reaction types](https://github.com/GetStream/stream-chat-angular/tree/master/projects/stream-chat-angular/src/lib/message-reactions/message-reactions.component.ts)
     */
    messageReactionGroups: {
        [key: string]: ReactionGroupResponse;
    } | undefined;
    /**
     * The number of reactions grouped by [reaction types](https://github.com/GetStream/stream-chat-angular/tree/master/projects/stream-chat-angular/src/lib/message-reactions/message-reactions.component.ts)
     * @deprecated use `messageReactionGroups`
     */
    messageReactionCounts: {
        [key in MessageReactionType]?: number;
    };
    /**
     * List of reactions of a [message](../types/stream-message.mdx), used to display the users of a reaction type.
     * @deprecated you can fetch the reactions using [`messageReactionsService.queryReactions()`](https://getstream.io/chat/docs/sdk/angular/services/MessageReactionsService/#queryreactions)
     */
    latestReactions: ReactionResponse<DefaultStreamChatGenerics>[];
    /**
     * List of the user's own reactions of a [message](../types/stream-message.mdx), used to display the users of a reaction type.
     */
    ownReactions: ReactionResponse<DefaultStreamChatGenerics>[];
    private selectorContainer;
    selectedReactionType: string | undefined;
    isLoading: boolean;
    reactions: ReactionResponse[];
    shouldHandleReactionClick: boolean;
    existingReactions: string[];
    reactionOptions: string[];
    usersByReactions: {
        [key: string]: {
            users: UserResponse[];
            next?: string;
        };
    };
    private subscriptions;
    private isViewInited;
    constructor(cdRef: ChangeDetectorRef, messageReactionsService: MessageReactionsService, customTemplatesService: CustomTemplatesService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    getEmojiByReaction(reactionType: MessageReactionType): string;
    reactionSelected(reactionType: string): Promise<void>;
    loadNextPageOfReactions(): Promise<void>;
    trackByMessageReaction(_: number, item: MessageReactionType): string;
    isOwnReaction(reactionType: MessageReactionType): boolean;
    isOpenChange: (isOpen: boolean) => void;
    private setExistingReactions;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessageReactionsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MessageReactionsComponent, "stream-message-reactions", never, { "messageId": "messageId"; "messageReactionGroups": "messageReactionGroups"; "messageReactionCounts": "messageReactionCounts"; "latestReactions": "latestReactions"; "ownReactions": "ownReactions"; }, {}, never, never, false, never>;
}
