import { IActivity, Activity } from '../activity.js';
import { MessageReaction } from '../../models/message/message-reaction.js';
import '../../models/channel-id.js';
import '../../models/account.js';
import '../../models/membership-source.js';
import '../../models/membership-source-types.js';
import '../../models/membership-types.js';
import '../../models/role.js';
import '../../models/conversation/conversation-reference.js';
import '../../models/entity/index.js';
import '../../models/entity/ai-message-entity.js';
import '../../models/entity/message-entity.js';
import '../../models/entity/citation-entity.js';
import '../../models/entity/client-info-entity.js';
import '../../models/entity/mention-entity.js';
import '../../models/entity/product-info-entity.js';
import '../../models/entity/sensitive-usage-entity.js';
import '../../models/entity/stream-info-entity.js';
import '../../models/channel-data/index.js';
import '../../models/meeting/meeting-info.js';
import '../../models/meeting/meeting-details.js';
import '../../models/channel-data/channel-info.js';
import '../../models/channel-data/feedback-loop.js';
import '../../models/channel-data/notification-info.js';
import '../../models/channel-data/on-behalf-of.js';
import '../../models/channel-data/settings.js';
import '../../models/channel-data/team-info.js';
import '../../models/channel-data/tenant-info.js';
import '../../models/message/message-user.js';

interface IMessageReactionActivity extends IActivity<'messageReaction'> {
    /**
     * The collection of reactions added to the conversation.
     */
    reactionsAdded?: MessageReaction[];
    /**
     * The collection of reactions removed from the conversation.
     */
    reactionsRemoved?: MessageReaction[];
}
declare class MessageReactionActivity extends Activity<'messageReaction'> implements IMessageReactionActivity {
    /**
     * The collection of reactions added to the conversation.
     */
    reactionsAdded?: MessageReaction[];
    /**
     * The collection of reactions removed from the conversation.
     */
    reactionsRemoved?: MessageReaction[];
    constructor(value?: Omit<Partial<IMessageReactionActivity>, 'type'>);
    /**
     * initialize from interface
     */
    static from(activity: IMessageReactionActivity): MessageReactionActivity;
    /**
     * convert to interface
     */
    toInterface(): IMessageReactionActivity;
    /**
     * copy to a new instance
     */
    clone(options?: Omit<Partial<IMessageReactionActivity>, 'type'>): MessageReactionActivity;
    /**
     * Add a message reaction.
     * @deprecated Use the api.reactions.add instead.
     */
    addReaction(reaction: MessageReaction): this;
    /**
     * Remove a message reaction.
     * @deprecated Use the api.reactions.remove instead.
     */
    removeReaction(reaction: MessageReaction): this;
}

export { type IMessageReactionActivity, MessageReactionActivity };
