import { TurnContext, TurnState } from '@microsoft/agents-hosting'; import { TeamsApplication } from '../teamsApplication'; import { MeetingParticipantsEventDetails } from '../../meeting/meetingParticipantsEventDetails'; import { MeetingEndEventDetails } from '../../meeting/meetingEndEventDetails'; import { MeetingStartEventDetails } from '../../meeting/meetingStartEventDetails'; /** * Handles Teams meeting-related events in applications. * Provides methods for registering handlers for meeting start, end, and participant changes. * @template TState Type extending TurnState to be used by the application */ export declare class Meetings { private readonly _app; /** * Creates a new Meetings instance. * @param app The TeamsApplication instance to associate with this Meetings instance */ constructor(app: TeamsApplication); /** * Registers a handler for meeting start events. * This event occurs when a Teams meeting begins. * * @param handler Function to handle the meeting start event * @returns The TeamsApplication instance for chaining */ start(handler: (context: TurnContext, state: TState, meeting: MeetingStartEventDetails) => Promise): TeamsApplication; /** * Registers a handler for meeting end events. * This event occurs when a Teams meeting ends. * * @param handler Function to handle the meeting end event * @returns The TeamsApplication instance for chaining */ end(handler: (context: TurnContext, state: TState, meeting: MeetingEndEventDetails) => Promise): TeamsApplication; /** * Registers a handler for participant join events. * This event occurs when participants join a Teams meeting. * * @param handler Function to handle the participants join event * @returns The TeamsApplication instance for chaining */ participantsJoin(handler: (context: TurnContext, state: TState, meeting: MeetingParticipantsEventDetails) => Promise): TeamsApplication; /** * Registers a handler for participant leave events. * This event occurs when participants leave a Teams meeting. * * @param handler Function to handle the participants leave event * @returns The TeamsApplication instance for chaining */ participantsLeave(handler: (context: TurnContext, state: TState, meeting: MeetingParticipantsEventDetails) => Promise): TeamsApplication; }