import { IActivity } from '../activity.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';

type EndOfConversationCode = 'unknown' | 'completedSuccessfully' | 'userCancelled' | 'botTimedOut' | 'botIssuedInvalidMessage' | 'channelFailed';
interface IEndOfConversationActivity extends IActivity<'endOfConversation'> {
    /**
     * The a code for endOfConversation activities that indicates why the conversation ended.
     * Possible values include: 'unknown', 'completedSuccessfully', 'userCancelled', 'botTimedOut',
     * 'botIssuedInvalidMessage', 'channelFailed'
     */
    code?: EndOfConversationCode;
    /**
     * The text content of the message.
     */
    text: string;
}

export type { EndOfConversationCode, IEndOfConversationActivity };
