import { TurnContext } from 'botbuilder-core';
import { TokenResponse } from 'botframework-schema';
import { MessageExtensionAuthenticationBase } from './MessageExtensionAuthenticationBase';
import { TeamsSsoSettings } from './TeamsSsoSettings';
import { ConfidentialClientApplication } from '@azure/msal-node';
/**
 * @internal
 *
 * Handles authentication for Teams Message Extension using Single Sign-On (SSO).
 */
export declare class TeamsSsoMessageExtensionAuthentication extends MessageExtensionAuthenticationBase {
    private readonly settings;
    private readonly msal;
    /**
     * Creates a new instance of TeamsSsoMessageExtensionAuthentication.
     * @param {TeamsSsoSettings} settings The Teams SSO settings.
     * @param {ConfidentialClientApplication} msal The MSAL (Microsoft Authentication Library) instance.
     */
    constructor(settings: TeamsSsoSettings, msal: ConfidentialClientApplication);
    /**
     * Checks if the activity is a valid Message Extension activity that supports SSO
     * @param {TurnContext} context The turn context.
     * @returns {boolean} A boolean indicating if the activity is valid.
     */
    isValidActivity(context: TurnContext): boolean;
    /**
     * Handles the SSO token exchange.
     * @param {TurnContext} context The turn context.
     * @returns {Promise<TokenResponse | undefined>} A promise that resolves to the token response or undefined if token exchange failed.
     */
    handleSsoTokenExchange(context: TurnContext): Promise<TokenResponse | undefined>;
    /**
     * Handles the signin/verifyState activity.
     * @param {TurnContext} context The turn context.
     * @param {string} magicCode The magic code from sign-in.
     * @returns {Promise<TokenResponse|undefined>} A promise that resolves to undefined. The parent class will trigger silentAuth again.
     */
    handleUserSignIn(context: TurnContext, magicCode: string): Promise<TokenResponse | undefined>;
    /**
     * Gets the sign-in link for the user.
     * @param {TurnContext} context The turn context.
     * @returns {Promise<string>} A promise that resolves to the sign-in link.
     */
    getSignInLink(context: TurnContext): Promise<string>;
    /**
     * Should sign in using SSO flow.
     * @param {TurnContext} context - The turn context.
     * @returns {boolean} - A boolean indicating if the sign-in should use SSO flow.
     */
    isSsoSignIn(context: TurnContext): boolean;
}
//# sourceMappingURL=TeamsSsoMessageExtensionAuthentication.d.ts.map