import { IncomingHttpHeaders } from 'node:http'; import { JWTAuthenticationManager } from '../../security/authn/jwt-authn-manager'; import { ContextProvider, RequestContextData } from '../context/types/request-context.type'; import { AuthenticationHook } from './types/hook.type'; import { Logger } from '../..'; /** * Represents a JWT Authentication Hook. */ export declare class JWTAuthenticationHook implements AuthenticationHook { private authenticationManager; private contextProvider; private logger; /** * Constructs a new instance of the JWTAuthenticationHook class. * @param opts - The options for the JWTAuthenticationHook. */ constructor(opts: { authenticationManager: JWTAuthenticationManager; contextProvider: ContextProvider; logger: Logger; }); /** * Authenticates the request. * @returns A function that performs the authentication. */ authenticate(): (request: { headers: IncomingHttpHeaders; query?: any; }) => Promise; }