///
import { AuthenticateFn, AuthenticationMetadata, AuthenticationStrategy } from '@loopback/authentication';
import { Getter, Provider } from '@loopback/core';
import { Request } from '@loopback/rest';
import { AccessTokenRepository } from '../repositories/access-token.repository';
/**
* This is the provder class to check if the provided
* access token(jwt) is present in the db or not
* also this class takes care of the authentication process
* and decodes the jwt and returns user profile
*
*/
export declare class FlclAuthenticationProvider implements Provider {
readonly getStrategies: Getter;
private accessTokenRepo;
private authenticateFn;
private readonly getMetadata;
constructor(getStrategies: Getter, accessTokenRepo: AccessTokenRepository, authenticateFn: AuthenticateFn, getMetadata: Getter);
value(): Promise;
getAuthorization(authorization?: string): string | undefined;
checkAccessToken(request: Request, strategy: AuthenticationStrategy | AuthenticationStrategy[] | undefined, metadata?: AuthenticationMetadata[], authorizationHeader?: string): Promise;
checkRefreshToken(request: Request): Promise;
getRefreshToken(request: Request): string | null;
}