import { MeetingEndEventDetails, MeetingParticipantsEventDetails, MeetingStartEventDetails, TurnContext } from 'botbuilder';
import { Application } from './Application';
import { TurnState } from './TurnState';
/**
 * Provides a set of methods for handling Teams meeting events.
 */
export declare class Meetings<TState extends TurnState = TurnState> {
    private readonly _app;
    constructor(app: Application<TState>);
    /**
     * Handles meeting start events for Microsoft Teams.
     * @template TState
     * @param {Function} handler - Function to call when the handler is triggered.
     * @returns {Application<TState>} The application for chaining purposes.
     */
    start(handler: (context: TurnContext, state: TState, meeting: MeetingStartEventDetails) => Promise<void>): Application<TState>;
    /**
     * Handles meeting end events for Microsoft Teams.
     * @template TState - The type of TurnState
     * @param {Function} handler - Function to call when the handler is triggered.
     * @returns {Application<TState>} The application for chaining purposes.
     */
    end(handler: (context: TurnContext, state: TState, meeting: MeetingEndEventDetails) => Promise<void>): Application<TState>;
    /**
     * Handles meeting participant join events for Microsoft Teams.
     * @template TState
     * @param {Function} handler - Function to call when the handler is triggered.
     * @returns {Application<TState>} The application for chaining purposes.
     */
    participantsJoin(handler: (context: TurnContext, state: TState, meeting: MeetingParticipantsEventDetails) => Promise<void>): Application<TState>;
    /**
     * Handles meeting participant leave events for Microsoft Teams.
     * @template TState - The type of TurnState
     * @param {Function} handler - Function to call when the handler is triggered.
     * @returns {Application<TState>} The application for chaining purposes.
     */
    participantsLeave(handler: (context: TurnContext, state: TState, meeting: MeetingParticipantsEventDetails) => Promise<void>): Application<TState>;
}
//# sourceMappingURL=Meetings.d.ts.map