///
import { Getter, Provider, Setter } from '@loopback/core';
import { Middleware, Request } from '@loopback/rest';
import { UserProfile } from '@loopback/security';
import { AuthenticateFn, AuthenticationOptions, AuthenticationStrategy } from '../types';
/**
* Provides the authentication action for a sequence
* @example
* ```ts
* context.bind('authentication.actions.authenticate').toProvider(AuthenticateActionProvider)
* ```
*/
export declare class AuthenticateActionProvider implements Provider {
readonly getStrategies: Getter;
readonly setCurrentUser: Setter;
readonly setRedirectUrl: Setter;
readonly setRedirectStatus: Setter;
private readonly options;
constructor(getStrategies: Getter, setCurrentUser: Setter, setRedirectUrl: Setter, setRedirectStatus: Setter, options?: AuthenticationOptions);
/**
* @returns authenticateFn
*/
value(): AuthenticateFn;
/**
* The implementation of authenticate() sequence action.
* @param request - The incoming request provided by the REST layer
*/
action(request: Request): Promise;
}
export declare class AuthenticationMiddlewareProvider implements Provider {
private authenticate;
constructor(authenticate: AuthenticateFn);
value(): Middleware;
}