/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License.
 */
import { ServiceCallback, RequestOptionsBase } from '@azure/core-http';
import * as Models from '../models';
import { TeamsConnectorClientContext } from '../';
import { Activity, ConversationList, TeamDetails, TeamsMeetingInfo, TeamsMeetingParticipant, MeetingNotificationResponse, MeetingNotification, TeamsMember, BatchOperationResponse, BatchOperationStateResponse, BatchFailedEntriesResponse } from 'botframework-schema';
/** Class representing a Teams. */
export declare class Teams {
    private readonly client;
    private readonly retryCount;
    /**
     * Create a Teams.
     *
     * @param {TeamsConnectorClientContext} client Reference to the service client.
     */
    constructor(client: TeamsConnectorClientContext);
    /**
     * Fetches channel list for a given team.
     *
     * @param teamId Team Id.
     * @param options Optional. The options object to be used in every request.
     * @returns A `Promise<Models.TeamsFetchChannelListResponse>`.
     */
    fetchChannelList(teamId: string, options?: RequestOptionsBase): Promise<Models.TeamsFetchChannelListResponse>;
    /**
     * Fetches channel list for a given team.
     *
     * @param teamId Team Id.
     * @param callback The callback.
     */
    fetchChannelList(teamId: string, callback: ServiceCallback<ConversationList>): void;
    /**
     * Fetches channel list for a given team.
     *
     * @param teamId Team Id.
     * @param options The options object to be used in every request.
     * @param callback The callback.
     */
    fetchChannelList(teamId: string, options: RequestOptionsBase, callback: ServiceCallback<ConversationList>): void;
    /**
     * Fetches details related to a team.
     *
     * @param teamId Team Id.
     * @param options Optional. The options object to be used in every request.
     * @returns A `Promise<Models.TeamsFetchTeamDetailsResponse>`.
     */
    fetchTeamDetails(teamId: string, options?: RequestOptionsBase): Promise<Models.TeamsFetchTeamDetailsResponse>;
    /**
     * Fetches details related to a team.
     *
     * @param teamId Team Id.
     * @param callback The callback.
     */
    fetchTeamDetails(teamId: string, callback: ServiceCallback<TeamDetails>): void;
    /**
     * Fetches details related to a team.
     *
     * @param teamId Team Id.
     * @param options The options object to be used in every request.
     * @param callback The callback.
     */
    fetchTeamDetails(teamId: string, options: RequestOptionsBase, callback: ServiceCallback<TeamDetails>): void;
    /**
     * Fetch a meeting participant
     *
     * @summary Fetches a meeting participant
     * @param meetingId Meeting Id
     * @param participantId Participant Id
     * @param [options] The optional parameters
     * @returns Promise<Models.TeamsFetchMeetingParticipantResponse>
     */
    fetchMeetingParticipant(meetingId: string, participantId: string, options?: Models.TeamsFetchMeetingParticipantOptionalParams): Promise<Models.TeamsFetchMeetingParticipantResponse>;
    /**
     * @param meetingId Meeting Id
     * @param participantId Participant Id
     * @param callback The callback
     */
    fetchMeetingParticipant(meetingId: string, participantId: string, callback: ServiceCallback<TeamsMeetingParticipant>): void;
    /**
     * @param meetingId Meeting Id
     * @param participantId Participant Id
     * @param options The optional parameters
     * @param callback The callback
     */
    fetchMeetingParticipant(meetingId: string, participantId: string, options: Models.TeamsFetchMeetingParticipantOptionalParams, callback: ServiceCallback<TeamsMeetingParticipant>): void;
    /**
     * Fetch meeting information.
     *
     * @summary Fetches information of a Teams meeting.
     * @param meetingId Meeting Id, encoded as a BASE64 string.
     * @param [options] The optional parameters
     * @returns Promise<Models.TeamsFetchMeetingInfoResponse>
     */
    fetchMeetingInfo(meetingId: string, options?: RequestOptionsBase | ServiceCallback<TeamDetails>): Promise<Models.TeamsMeetingInfoResponse>;
    /**
     * @param meetingId Meeting Id, encoded as a BASE64 string.
     * @param callback The callback
     */
    fetchMeetingInfo(meetingId: string, callback: ServiceCallback<TeamsMeetingInfo>): void;
    /**
     * @param meetingId Meeting Id, encoded as a BASE64 string.
     * @param options The optional parameters
     * @param callback The callback
     */
    fetchMeetingInfo(meetingId: string, options: RequestOptionsBase | ServiceCallback<TeamDetails>, callback: ServiceCallback<TeamsMeetingInfo>): void;
    /**
     * Send meeting notification.
     *
     * @param meetingId Meeting Id.
     * @param notification The content and configuration for the notification to send.
     * @param options The optional parameters.
     */
    sendMeetingNotification(meetingId: string, notification: MeetingNotification, options?: RequestOptionsBase): Promise<Models.TeamsMeetingNotificationResponse>;
    /**
     * @param meetingId Meeting Id.
     * @param notification The content and configuration for the notification to send.
     * @param callback The callback.
     */
    sendMeetingNotification(meetingId: string, notification: MeetingNotification, callback: ServiceCallback<MeetingNotificationResponse>): void;
    /**
     * @param meetingId Meeting Id.
     * @param notification The content and configuration for the notification to send.
     * @param options The optional parameters.
     * @param callback The callback.
     */
    sendMeetingNotification(meetingId: string, notification: MeetingNotification, options: RequestOptionsBase, callback: ServiceCallback<MeetingNotificationResponse>): void;
    /**
     * Send message to a list of users.
     *
     * @param activity The activity to send.
     * @param tenantId The tenant Id.
     * @param members The list of members.
     * @param options The optional parameters.
     * @param callback The callback.
     * @returns Promise with TeamsBatchOperationResponse.
     */
    sendMessageToListOfUsers(activity: Activity, tenantId: string, members: TeamsMember[], options?: RequestOptionsBase, callback?: ServiceCallback<BatchOperationResponse>): Promise<Models.TeamsBatchOperationResponse>;
    /**
     * Send message to all users belonging to a tenant.
     *
     * @param activity The activity to send.
     * @param tenantId The id of the recipient Tenant.
     * @param options The optional parameters.
     * @param callback The callback.
     * @returns Promise with TeamsBatchOperationResponse.
     */
    sendMessageToAllUsersInTenant(activity: Activity, tenantId: string, options?: RequestOptionsBase, callback?: ServiceCallback<BatchOperationResponse>): Promise<Models.TeamsBatchOperationResponse>;
    /**
     * Send message to all users belonging to a team.
     *
     * @param activity The activity to send.
     * @param tenantId The tenant Id.
     * @param teamId The id of the recipient Team.
     * @param options The optional parameters.
     * @param callback The callback.
     * @returns Promise with TeamsBatchOperationResponse.
     */
    sendMessageToAllUsersInTeam(activity: Activity, tenantId: string, teamId: string, options?: RequestOptionsBase, callback?: ServiceCallback<BatchOperationResponse>): Promise<Models.TeamsBatchOperationResponse>;
    /**
     * Send message to a list of channels.
     *
     * @param activity The activity to send.
     * @param tenantId The tenant Id.
     * @param members The list of channels.
     * @param options The optional parameters.
     * @param callback The callback.
     * @returns Promise with TeamsBatchOperationResponse.
     */
    sendMessageToListOfChannels(activity: Activity, tenantId: string, members: TeamsMember[], options?: RequestOptionsBase, callback?: ServiceCallback<BatchOperationResponse>): Promise<Models.TeamsBatchOperationResponse>;
    /**
     * Get the state of an operation.
     *
     * @param operationId The operationId to get the state of.
     * @param options The optional parameters.
     * @param callback The callback.
     * @returns Promise with BatchOperationStateResponse.
     */
    getOperationState(operationId: string, options?: RequestOptionsBase, callback?: ServiceCallback<BatchOperationStateResponse>): Promise<Models.BatchBatchOperationStateResponse>;
    /**
     * Get the failed entries of an operation.
     *
     * @param operationId The operationId to get the failed entries of.
     * @param options The optional parameters.
     * @param callback The callback.
     * @returns Promise with BatchFailedEntriesResponse.
     */
    getOperationFailedEntries(operationId: string, options?: RequestOptionsBase, callback?: ServiceCallback<BatchFailedEntriesResponse>): Promise<Models.BatchBatchFailedEntriesResponse>;
    /**
     * Cancel an operation.
     *
     * @param operationId The id of the operation to cancel.
     * @param options The optional parameters.
     * @returns Promise with CancelOperationResponse.
     */
    cancelOperation(operationId: string, options?: RequestOptionsBase): Promise<Models.CancelOperationResponse>;
}
//# sourceMappingURL=teams.d.ts.map
