import { type Ref } from 'vue';
import type { MessageReactions } from '@/types';
/**
 * Композабл для управления локальным состоянием реакций
 */
export declare function useReactionsState(initialReactions: Ref<MessageReactions | undefined>): {
    localReactions: Ref<{
        items: {
            key: import("@/types").ReactionKey;
            count: number;
            reactedByMe?: boolean | undefined;
        }[];
        meta?: {
            mode?: "single" | "multi" | undefined;
        } | undefined;
        recent?: {
            userId: string | number;
            key: import("@/types").ReactionKey;
            date?: number | undefined;
        }[] | undefined;
        vendor?: {
            telegram?: {
                total_count?: number | undefined;
                recent_reactions?: {
                    type: {
                        type: string;
                        emoji?: string | undefined;
                    };
                    actor?: {
                        id?: number | undefined;
                        is_bot?: boolean | undefined;
                        first_name?: string | undefined;
                    } | undefined;
                    date?: number | undefined;
                }[] | undefined;
                counts?: {
                    type: {
                        type: string;
                        emoji: string;
                    };
                    count: number;
                }[] | undefined;
            } | undefined;
            whatsapp?: {
                lastEventAt?: number | undefined;
            } | undefined;
        } | undefined;
    } | undefined, MessageReactions | {
        items: {
            key: import("@/types").ReactionKey;
            count: number;
            reactedByMe?: boolean | undefined;
        }[];
        meta?: {
            mode?: "single" | "multi" | undefined;
        } | undefined;
        recent?: {
            userId: string | number;
            key: import("@/types").ReactionKey;
            date?: number | undefined;
        }[] | undefined;
        vendor?: {
            telegram?: {
                total_count?: number | undefined;
                recent_reactions?: {
                    type: {
                        type: string;
                        emoji?: string | undefined;
                    };
                    actor?: {
                        id?: number | undefined;
                        is_bot?: boolean | undefined;
                        first_name?: string | undefined;
                    } | undefined;
                    date?: number | undefined;
                }[] | undefined;
                counts?: {
                    type: {
                        type: string;
                        emoji: string;
                    };
                    count: number;
                }[] | undefined;
            } | undefined;
            whatsapp?: {
                lastEventAt?: number | undefined;
            } | undefined;
        } | undefined;
    } | undefined>;
    displayedReactions: import("vue").ComputedRef<{
        key: import("@/types").ReactionKey;
        count: number;
        reactedByMe?: boolean | undefined;
    }[]>;
    hasReactions: import("vue").ComputedRef<boolean>;
    addReaction: (key: string) => void;
    removeReaction: (key: string) => void;
    toggleReaction: (key: string) => void;
};
