import { IActivity } from '../activity.mjs';
import '../../models/channel-id.mjs';
import '../../models/account.mjs';
import '../../models/agentic-identity.mjs';
import '../../models/conversation-type.mjs';
import '../../models/membership-source.mjs';
import '../../models/membership-source-types.mjs';
import '../../models/membership-types.mjs';
import '../../models/role.mjs';
import '../../models/conversation/conversation-reference.mjs';
import '../../models/entity/index.mjs';
import '../../models/entity/ai-message-entity.mjs';
import '../../models/entity/message-entity.mjs';
import '../../models/entity/citation-entity.mjs';
import '../../models/entity/sensitivity-usage-info.mjs';
import '../../models/entity/client-info-entity.mjs';
import '../../models/entity/mention-entity.mjs';
import '../../models/entity/product-info-entity.mjs';
import '../../models/entity/quoted-reply-entity.mjs';
import '../../models/entity/sensitive-usage-entity.mjs';
import '../../models/entity/stream-info-entity.mjs';
import '../../models/entity/targeted-message-info-entity.mjs';
import '../../models/channel-data/index.mjs';
import '../../models/meeting/meeting-info.mjs';
import '../../models/meeting/meeting-details.mjs';
import '../../models/channel-data/app-info.mjs';
import '../../models/channel-data/channel-info.mjs';
import '../../models/channel-data/chat-info.mjs';
import '../../models/channel-data/feedback-loop.mjs';
import '../../models/channel-data/notification-info.mjs';
import '../../models/channel-data/on-behalf-of.mjs';
import '../../models/channel-data/reply-chain-info.mjs';
import '../../models/channel-data/settings.mjs';
import '../../models/channel-data/source-info.mjs';
import '../../models/channel-data/team-info.mjs';
import '../../models/channel-data/tenant-info.mjs';

interface IMeetingStartEventActivity extends IActivity<'event'> {
    /**
     * The name of the operation associated with an invoke or event activity.
     */
    name: 'application/vnd.microsoft.meetingStart';
    /**
     * A value that is associated with the activity.
     */
    value: {
        /**
         * @member {string} [Id] The meeting's Id, encoded as a BASE64 string.
         */
        Id: string;
        /**
         * @member {string} [MeetingType] The meeting's type.
         */
        MeetingType: string;
        /**
         * @member {string} [JoinUrl] The URL used to join the meeting.
         * Meetings held inside a channel have no join URL, and the platform sends the field as `null` on the wire.
         */
        JoinUrl?: string | null;
        /**
         * @member {string} [Title] The title of the meeting.
         */
        Title: string;
        /**
         * @member {Date} [StartTime] Timestamp for meeting start, in UTC.
         */
        StartTime: Date;
    };
}

export type { IMeetingStartEventActivity };
