import { TokenExchangeInvokeResponse } from './token-exchange/token-exchange-invoke-response.js';
import { ConfigResponse } from './config/config-response.js';
import { TaskModuleResponse } from './task-module/task-module-response.js';
import { TabResponse } from './tab/tab-response.js';
import { MessagingExtensionResponse } from './messaging-extension/messaging-extension-response.js';
import { MessagingExtensionActionResponse } from './messaging-extension/messaging-extension-action-response.js';
import { AdaptiveCardActionResponse } from './adaptive-card/adaptive-card-action-response.js';
import './config/config-auth.js';
import './suggested-actions.js';
import './card/card-action.js';
import './cache-info.js';
import './task-module/task-module-continue-response.js';
import './task-module/task-module-response-base.js';
import './task-module/task-module-task-info.js';
import './attachment/attachment.js';
import './task-module/task-module-message-response.js';
import './tab/tab-response-card.js';
import './tab/tab-suggested-actions.js';
import './messaging-extension/messaging-extension-result.js';
import '../activity-BzTsi0gF.js';
import '../message-B-5FpoB1.js';
import './account.js';
import './membership-source.js';
import './membership-source-types.js';
import './membership-types.js';
import './role.js';
import './entity/mention-entity.js';
import './input-hint.js';
import './text-format.js';
import './attachment/card-attachment.js';
import '@microsoft/teams.cards';
import './card/animation-card.js';
import './card/media-url.js';
import './card/thumbnail-url.js';
import './card/audio-card.js';
import './card/hero-card.js';
import './card/card-image.js';
import './card/thumbnail-card.js';
import './card/video-card.js';
import './oauth/oauth-card.js';
import './token/token-post-resource.js';
import './token-exchange/token-exchange-resource.js';
import './sign-in/sign-in-card.js';
import './attachment/attachment-layout.js';
import './importance.js';
import './delivery-mode.js';
import '../activities/activity.js';
import './channel-id.js';
import './conversation/conversation-reference.js';
import './entity/index.js';
import './entity/ai-message-entity.js';
import './entity/message-entity.js';
import './entity/citation-entity.js';
import './entity/client-info-entity.js';
import './entity/product-info-entity.js';
import './entity/sensitive-usage-entity.js';
import './entity/stream-info-entity.js';
import './channel-data/index.js';
import './meeting/meeting-info.js';
import './meeting/meeting-details.js';
import './channel-data/channel-info.js';
import './channel-data/feedback-loop.js';
import './channel-data/notification-info.js';
import './channel-data/on-behalf-of.js';
import './channel-data/settings.js';
import './channel-data/team-info.js';
import './channel-data/tenant-info.js';
import '../activities/typing.js';
import '../activities/message/message-update.js';
import '@microsoft/teams.common/http';
import '../activities/command/index.js';
import '../activities/command/command-result.js';
import '../activities/command/command-send.js';
import '../activities/conversation/index.js';
import '../activities/conversation/conversation-update.js';
import '../activities/conversation/end-of-conversation.js';
import '../activities/event/index.js';
import '../activities/event/meeting-end.js';
import '../activities/event/meeting-participant-join.js';
import '../activities/event/meeting-participant-leave.js';
import '../activities/event/meeting-start.js';
import '../activities/event/read-receipt.js';
import '../activities/handoff.js';
import '../activities/install-update/index.js';
import '../activities/install-update/add.js';
import '../activities/install-update/remove.js';
import '../activities/invoke/adaptive-card/index.js';
import '../activities/invoke/adaptive-card/action.js';
import './adaptive-card/adaptive-card-invoke-value.js';
import './adaptive-card/adaptive-card-authentication.js';
import './token-exchange/token-exchange-invoke-request.js';
import './adaptive-card/adaptive-card-invoke-action.js';
import '../activities/invoke/config/index.js';
import '../activities/invoke/config/config-fetch.js';
import '../activities/invoke/config/config-submit.js';
import '../activities/invoke/execute-action.js';
import './o365/o365-connector-card-action-query.js';
import '../activities/invoke/file-consent.js';
import './file/file-consent-card.js';
import './action.js';
import './file/file-upload-info.js';
import '../activities/invoke/handoff-action.js';
import '../activities/invoke/message/index.js';
import '../activities/invoke/message/fetch-task.js';
import '../activities/invoke/message/submit-action.js';
import '../activities/invoke/message-extension/anon-query-link.js';
import './app-based-link-query.js';
import '../activities/invoke/message-extension/card-button-clicked.js';
import './message/message.js';
import './message/message-body.js';
import './message/message-from.js';
import './message/message-app.js';
import './message/message-conversation.js';
import './message/message-user.js';
import './message/message-mention.js';
import './message/message-reaction.js';
import './task-module/task-module-request.js';
import './tab/tab-entity-context.js';
import '../activities/invoke/message-extension/query.js';
import './messaging-extension/messaging-extension-query.js';
import './messaging-extension/messaging-extension-parameter.js';
import '../activities/invoke/message-extension/query-link.js';
import '../activities/invoke/message-extension/query-setting-url.js';
import '../activities/invoke/message-extension/select-item.js';
import '../activities/invoke/message-extension/setting.js';
import '../activities/invoke/sign-in/index.js';
import '../activities/invoke/sign-in/failure.js';
import './sign-in/sign-in-failure.js';
import '../activities/invoke/sign-in/token-exchange.js';
import './sign-in/sign-in-exchange-token.js';
import '../activities/invoke/sign-in/verify-state.js';
import './sign-in/sign-in-state-verify-query.js';
import '../activities/invoke/tab/index.js';
import '../activities/invoke/tab/tab-fetch.js';
import './tab/tab-request.js';
import './tab/tab-context.js';
import '../activities/invoke/tab/tab-submit.js';
import '../activities/invoke/task/index.js';
import '../activities/invoke/task/task-fetch.js';
import '../activities/invoke/task/task-submit.js';
import '../activities/message/index.js';
import '../activities/message/message-delete.js';
import '../activities/message/message-reaction.js';
import '../activities/trace.js';
import './resource.js';
import '../clients/api-client-settings.js';
import '../auth/cloud-environment.js';
import './messaging-extension/messaging-extension-attachment.js';
import './messaging-extension/messaging-extension-attachment-layout.js';
import './messaging-extension/messaging-extension-suggested-action.js';
import './error.js';

/**
 * Represents a response returned by a bot when it receives an `invoke` activity.
 *
 * This interface supports the framework and is not intended to be called directly for your code.
 */
type InvokeResponse<T extends keyof InvokeResponseBody = any> = {
    /**
     * The HTTP status code of the response.
     */
    status: number;
    /**
     * Optional. The body of the response.
     */
    body?: InvokeResponseBody[T];
};
/**
 * @hidden
 * @internal
 *
 * Type guard to check if a value is an InvokeResponse.
 * @param value value to compare
 * @returns true if value is type of InvokeResponse
 */
declare function isInvokeResponse(value: any): value is InvokeResponse;
type InvokeResponseBody = {
    'config/fetch': ConfigResponse;
    'config/submit': ConfigResponse;
    'fileConsent/invoke': void;
    'actionableMessage/executeAction': void;
    'composeExtension/queryLink': MessagingExtensionResponse;
    'composeExtension/anonymousQueryLink': MessagingExtensionResponse;
    'composeExtension/query': MessagingExtensionResponse;
    'composeExtension/selectItem': MessagingExtensionResponse;
    'composeExtension/submitAction': MessagingExtensionActionResponse;
    'composeExtension/fetchTask': MessagingExtensionActionResponse;
    'composeExtension/querySettingUrl': MessagingExtensionResponse;
    'composeExtension/setting': MessagingExtensionResponse;
    'composeExtension/onCardButtonClicked': void;
    'task/fetch': TaskModuleResponse;
    'task/submit': TaskModuleResponse;
    'tab/fetch': TabResponse;
    'tab/submit': TabResponse;
    'message/fetchTask': TaskModuleResponse;
    'message/submitAction': void;
    'handoff/action': void;
    'signin/tokenExchange': TokenExchangeInvokeResponse | void;
    'signin/verifyState': void;
    'signin/failure': void;
    'adaptiveCard/action': AdaptiveCardActionResponse;
};

export { type InvokeResponse, isInvokeResponse };
