import { Algorithm } from 'jsonwebtoken'; import type { Logger } from '@iota-big3/sdk-types'; export interface JWTConfig { accessTokenSecret: string; refreshTokenSecret: string; accessTokenExpiry?: string; refreshTokenExpiry?: string; algorithm?: Algorithm; issuer?: string; audience?: string | string[]; clockTolerance?: number; } export interface TokenPayload { userId: string; email?: string; roles?: string[]; permissions?: string[]; sessionId?: string; [key: string]: any; } export interface TokenPair { accessToken: string; refreshToken: string; accessTokenExpiry: Date; refreshTokenExpiry: Date; } export interface DecodedToken extends TokenPayload { iat: number; exp: number; iss?: string; aud?: string | string[]; jti?: string; } export declare class JWTService { private config; private revokedTokens; private logger?; constructor(config: JWTConfig, logger?: Logger); generateTokenPairAsync(payload: TokenPayload): Promise; verifyAccessTokenAsync(token: string): Promise; verifyRefreshTokenAsync(token: string): Promise; refreshTokensAsync(refreshToken: string): Promise; revokeToken(): void; revokeSession(): void; private isTokenRevoked; private generateJTI; private decodeToken; cleanupRevokedTokens(): void; } //# sourceMappingURL=jwt-service.d.ts.map