import { Middleware } from './middleware'; import { Request, Response } from '../http'; /** * RBAC middleware via user-provided evaluator functions. * * @export * @class Roles * @extends {Middleware} */ export declare class Roles extends Middleware { /** * An array of evaluator functions which, given the current request and * response objects, returns either true or false indicating authorization. * * @memberof Roles */ evaluators: Array<(req: Request, res: Response) => Promise>; /** * Creates an instance of Roles. * @param {Array<(req: Request, res: Response) => Promise>} evaluators * @memberof Roles */ constructor(evaluators: Array<(req: Request, res: Response) => Promise>); /** * Executes each evaluator against the current request and response. * * @param {Request} req * @param {Response} res * @throws {Unauthorized} * @returns {Promise} * @memberof Roles */ processRequest: (req: Request, res: Response) => Promise; } /** * JWT processing middleware. * * @export * @class JWT * @extends {Middleware} */ export declare class JWT extends Middleware { /** * The JWT encryption password. * * @type {string} * @memberof JWT */ secret: string; /** * The encryption algorithm to use. * * @type {string} * @memberof JWT */ algorithm: string; /** * Creates an instance of JWT. * @param {string} secret * @param {string} [algorithm='HS256'] * @memberof JWT */ constructor(secret: string, algorithm?: string); /** * Extracts and verifies the JWT from the Authorization header. * * @param {Request} req * @param {Response} res * @throws {Unauthorized} * @returns {Promise} * @memberof JWT */ processRequest: (req: Request, res: Response) => Promise<{}>; } /** * JWK processing middleware. * * @export * @class JWK * @extends {Middleware} */ export declare class JWK extends Middleware { /** * A list of JWKs in JSON used for token verification. * * @type {object[]} * @memberof JWK */ keys: object[]; /** * Creates an instance of JWK. * @param {object[]} jwks * @throws {InternalError} * @memberof JWK */ constructor(jwks: object[]); /** * Extracts and verifies the JWT from the Authorization header. * * @param {Request} req * @param {Response} res * @throws {Unauthorized} * @returns {Promise} * @memberof JWK */ processRequest: (req: Request, res: Response) => Promise; }