import { JwtFromRequestFunction } from 'passport-jwt';
import { Strategy } from 'passport-strategy';
import { IAuthUserEntityForResponse, IJwtPayload } from '..';
import { IAuthDefinitions } from '../../domain';
import { AuthRepository } from '../repositories';
import { TokenService } from '../services';
export declare const REFRESH_TOKEN_STRATEGY_NAME: string;
declare const RefreshTokenStrategy_base: new (...args: any[]) => Strategy;
export declare class RefreshTokenStrategy extends RefreshTokenStrategy_base {
    protected readonly authDefinitions: IAuthDefinitions;
    protected readonly authRepository: AuthRepository;
    protected readonly jwtService: TokenService;
    protected jwtFromRequest: JwtFromRequestFunction;
    constructor(authDefinitions: IAuthDefinitions, authRepository: AuthRepository, jwtService: TokenService);
    authenticate(req: any, options?: any): Promise<void>;
    protected validate(payload: IJwtPayload): Promise<IAuthUserEntityForResponse | undefined>;
}
export {};
