import { ConversationReference } from '../../../models/conversation/conversation-reference.js';
import { IActivity } from '../../activity.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/channel-id.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';

interface IMessageFetchTaskInvokeActivity extends IActivity<'invoke'> {
    /**
     * The name of the operation associated with an invoke or event activity.
     */
    name: 'message/fetchTask';
    /**
     * A value that is associated with the activity.
     */
    value: {
        /**
         * The data payload containing action name and value.
         */
        data: {
            /**
             * The name of the action.
             */
            actionName: 'feedback';
            /**
             * The nested action value containing the user's reaction.
             */
            actionValue: {
                /**
                 * The feedback button the user clicked.
                 */
                reaction: 'like' | 'dislike';
            };
        };
    };
    /**
     * A reference to another conversation or activity.
     */
    relatesTo?: ConversationReference;
}

export type { IMessageFetchTaskInvokeActivity };
