import { UserProfile } from '@loopback/security'; import { TokenService } from '@loopback/authentication'; import { FlclCrypter } from '../components/crypter/flcl-crypter'; import { JWTAlgorithm } from '../constants/jwt-algorithms'; import { AccessTokenRepository } from '../repositories/access-token.repository'; export declare class FlclTokenService implements TokenService { private jwtExpiresIn; private flclCrypter; private tokenAlgorithm; private jwtTokenSecret; private refreshTokenExpiresInDays; private accessTokenRepo; constructor(jwtExpiresIn: string, flclCrypter: FlclCrypter, tokenAlgorithm: JWTAlgorithm, jwtTokenSecret: string, refreshTokenExpiresInDays: number, accessTokenRepo: AccessTokenRepository); private verifyAsync; private signAsync; verifyToken(token: string): Promise; /** * Generate a JWT access token * @param userProfile Data that represents the user's profile * @param expiresIn Optional expiration time in seconds * @returns JWT access token string */ generateToken(userProfile: UserProfile, expiresIn?: number): Promise; generateTokenWithRefreshToken(userProfile: UserProfile, expiresIn?: number): Promise<{ accessToken: string; refreshToken: string; }>; revokeToken(token: string): Promise; /** * Generate a JWT refresh token * * @param userProfile - User profile containing user information * @param expiresIn - Optional expiration time in seconds * @returns JWT refresh token string */ private generateRefreshToken; }