import { IAccessToken, IAccessTokenProvider, ITokenContext } from './interfaces'; import { GetJwtCallback, Jwt } from '../Jwt'; /** * Implementation of {@link IAccessTokenProvider} that caches the JWT * in memory while it's fresh (i.e. not expired) and uses the user-provided * callback function to get the JWT when requested by the clients. */ export declare class CachingJwtProvider implements IAccessTokenProvider { private cachedJwt?; private readonly getJwt; private jwtPromise?; /** * Creates a new instance of `CachingJwtProvider`. * @param {GetJwtCallback} renewJwtFn - The function that will be called * whenever the fresh JWT is needed. If the `renewJwtFn` returns the JWT * as a string, it will be converted to {@link Jwt} instance automatically. * @param {Jwt|string} [initialToken] - Optional initial JWT. */ constructor(renewJwtFn: GetJwtCallback, initialToken?: Jwt | string); /** * Returns a `Promise` resolved with the cached token if it's fresh, or the * token obtained by the call to the `renewJwtCallback` otherwise. The token * obtained from the `renewJwtCallback` is then cached. If the `renewJwtCallback` * returns the JWT as a string, it is converted to {@link Jwt} instance before returning. * @param {ITokenContext} context * @returns {Promise} */ getToken(context: ITokenContext): Promise; }