/**
 * JWT Manager
 * JSON Web Token generation, verification, and claims management
 * Uses native Node.js crypto module (zero external dependencies)
 */
import type { AuthorizationHeader } from './JwtSessions';
export type JwtAlgorithm = 'HS256' | 'HS512' | 'RS256';
export interface JwtPayload {
    sub?: string;
    iss?: string;
    aud?: string;
    exp?: number;
    iat?: number;
    nbf?: number;
    jti?: string;
    [key: string]: unknown;
}
export interface JwtOptions {
    algorithm?: JwtAlgorithm;
    expiresIn?: number;
    issuer?: string;
    audience?: string;
    subject?: string;
    jwtId?: string;
}
export interface IJwtManager {
    setHmacSecret(secret: string): void;
    setRsaKeys(privateKey: string, publicKey: string): void;
    sign(payload: JwtPayload, options?: JwtOptions): string;
    verify(token: string, algorithm?: JwtAlgorithm): JwtPayload;
    decode(token: string): JwtPayload;
    signRsa(message: string): string;
    generateJwtId(): string;
}
export interface JwtManagerType {
    create(): IJwtManager;
    signAccessToken: (payload: JwtPayload, expiresIn?: number) => Promise<string>;
    logout: (authHeader: AuthorizationHeader) => Promise<void>;
    logoutAll: (sub: string) => Promise<void>;
}
/**
 * JwtManager namespace - sealed for immutability
 */
export declare const JwtManager: JwtManagerType;
//# sourceMappingURL=JwtManager.d.ts.map