import { Storage, TokenResponse, TurnContext } from 'botbuilder'; import { DialogTurnResult } from 'botbuilder-dialogs'; import { Application } from '../Application'; import { TurnState } from '../TurnState'; import { BotAuthenticationBase } from './BotAuthenticationBase'; import { ConfidentialClientApplication } from '@azure/msal-node'; import { TeamsSsoSettings } from './TeamsSsoSettings'; /** * @internal * * Handles authentication for Teams bots using Single Sign-On (SSO). * @template TState - The type of the turn state object. */ export declare class TeamsSsoBotAuthentication extends BotAuthenticationBase { private _prompt; private _tokenExchangeIdRegex; /** * Initializes a new instance of the TeamsSsoBotAuthentication class. * @param {Application} app - The application object. * @param {TeamsSsoSettings} settings - The settings for Teams SSO. * @param {string} settingName - The name of the setting. * @param {ConfidentialClientApplication} msal - The MSAL (Microsoft Authentication Library) object. * @param {Storage} storage - The storage object for storing state. */ constructor(app: Application, settings: TeamsSsoSettings, settingName: string, msal: ConfidentialClientApplication, storage?: Storage); /** * Run or continue the SSO dialog and returns the result. * @param {TurnContext} context - The turn context object. * @param {TState} state - The turn state object. * @param {string} dialogStateProperty - The name of the dialog state property. * @returns {Promise>} A promise that resolves to the dialog turn result containing the token response. */ runDialog(context: TurnContext, state: TState, dialogStateProperty: string): Promise>; /** * Continues the SSO dialog and returns the result. * @param {TurnContext} context - The turn context object. * @param {TState} state - The turn state object. * @param {string} dialogStateProperty - The name of the dialog state property. * @returns {Promise>} A promise that resolves to the dialog turn result containing the token response. */ continueDialog(context: TurnContext, state: TState, dialogStateProperty: string): Promise>; /** * Determines whether the token exchange activity should be processed by current authentication setting. * @param {TurnContext} context - The turn context object. * @returns {Promise} A promise that resolves to a boolean indicating whether the token exchange route should be processed by current class instance. */ tokenExchangeRouteSelector(context: TurnContext): Promise; /** * Creates the SSO dialog context. * @param {TurnContext} context - The turn context object. * @param {TState} state - The turn state object. * @param {string} dialogStateProperty - The name of the dialog state property. * @returns {Promise} A promise that resolves to the dialog context object. */ private createSsoDialogContext; /** * Checks if deduplication should be performed for token exchange. * @param {TurnContext} context - The turn context object. * @returns {Promise} A promise that resolves to a boolean indicating whether deduplication should be performed. */ private shouldDedup; /** * Gets the storage key for storing the token exchange state. * @param {TurnContext} context - The turn context object. * @returns {string} The storage key. * @throws Error if the context is invalid or the activity is not a token exchange invoke. */ private getStorageKey; } //# sourceMappingURL=TeamsSsoBotAuthentication.d.ts.map