/**
 * @module botframework-connector
 */
/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License.
 */
import { VerifyOptions } from 'jsonwebtoken';
import { AuthenticationConfiguration } from './authenticationConfiguration';
import { ClaimsIdentity } from './claimsIdentity';
import { ICredentialProvider } from './credentialProvider';
/**
 * @deprecated Use `ConfigurationBotFrameworkAuthentication` instead to perform government channel validation.
 */
export declare namespace GovernmentChannelValidation {
    let OpenIdMetadataEndpoint: string;
    /**
     * TO BOT FROM GOVERNMENT CHANNEL: Token validation parameters when connecting to a bot
     */
    const ToBotFromGovernmentChannelTokenValidationParameters: VerifyOptions;
    /**
     * Validate the incoming Auth Header as a token sent from the Bot Framework Service.
     * A token issued by the Bot Framework emulator will FAIL this check.
     *
     * @param {string} authHeader The raw HTTP header in the format: "Bearer [longString]"
     * @param {ICredentialProvider} credentials The user defined set of valid credentials, such as the AppId.
     * @param {string} serviceUrl The ServiceUrl Claim value that must match in the identity.
     * @param channelId The ID of the channel to validate.
     * @returns {Promise<ClaimsIdentity>} A valid ClaimsIdentity.
     */
    function authenticateChannelTokenWithServiceUrl(authHeader: string, credentials: ICredentialProvider, serviceUrl: string, channelId: string): Promise<ClaimsIdentity>;
    /**
     * Validate the incoming Auth Header as a token sent from the Bot Framework Service.
     * A token issued by the Bot Framework emulator will FAIL this check.
     *
     * @param  {string} authHeader The raw HTTP header in the format: "Bearer [longString]"
     * @param  {ICredentialProvider} credentials The user defined set of valid credentials, such as the AppId.
     * @param  {string} channelId The ID of the channel to validate.
     * @param  {AuthenticationConfiguration} authConfig The authentication configuration.
     * @returns {Promise<ClaimsIdentity>} A valid ClaimsIdentity.
     */
    function authenticateChannelToken(authHeader: string, credentials: ICredentialProvider, channelId: string, authConfig?: AuthenticationConfiguration): Promise<ClaimsIdentity>;
    /**
     * Validate the ClaimsIdentity to ensure it came from the channel service.
     *
     * @param  {ClaimsIdentity} identity The identity to validate
     * @param  {ICredentialProvider} credentials The user defined set of valid credentials, such as the AppId.
     * @returns {Promise<ClaimsIdentity>} A valid ClaimsIdentity.
     */
    function validateIdentity(identity: ClaimsIdentity, credentials: ICredentialProvider): Promise<ClaimsIdentity>;
}
//# sourceMappingURL=governmentChannelValidation.d.ts.map
