///
import "url-search-params-polyfill";
import { MindConnectBase, TokenRotation } from "./mindconnect-base";
import { AccessToken, IMindConnectConfiguration, OnboardingStatus } from "./mindconnect-models";
import { IConfigurationStorage } from "./mindconnect-storage";
export declare abstract class AgentAuth extends MindConnectBase implements TokenRotation {
protected _tokenValidity: number;
/**
* The assertion response contains the /exchange token plus additional information. If this is not set, the client will try to
* acquire a new token.
* @private
* @type {AccessToken}
* @memberof AgentAuth
*/
protected _accessToken?: AccessToken;
/**
* The /exchange tokens from the mindsphere use RSA256 algorithm also for SHARED_SECRET for token signing. This is where the public
* key of mindsphere is cached during the lifetime of the agent.
*
* @private
* @type {TokenKey}
* @memberof AgentAuth
*/
private _oauthPublicKey?;
/**
* lock object for client secret renewal. (this is the most sensitive part in the tocken rotation, which needs to be done in critical section)
*
* @private
* @type {AsyncLock}
* @memberOf AgentAuth
*/
private secretLock;
/**
* Asynchronous method which saves the agent state in the .mc (or reconfigured) folder.
*
* @private
* @returns {Promise