import { JWT, JWTPermissionName, JWTRoleName } from '@becomes/purple-cheetah-mod-jwt/types'; import { ControllerMethodPreRequestHandler, HTTPError, ObjectSchema } from '@becomes/purple-cheetah/types'; import type { BCMSApiKey, BCMSRouteProtectionApiConfig, BCMSRouteProtectionGQLRequest, BCMSRouteProtectionJWTAndBodyCheckConfig, BCMSRouteProtectionJwtAndBodyCheckResult, BCMSRouteProtectionJWTConfig, BCMSRouteProtectionJwtResult, BCMSRouteProtectionRestRequest, BCMSUserCustomPool, BCMSUserPolicy } from '../types'; export declare class BCMSRouteProtection { static routeProtectionCheckPolicy({ errorHandler, policy, gql, rest, }: { rest?: BCMSRouteProtectionRestRequest; gql?: BCMSRouteProtectionGQLRequest; policy: BCMSUserPolicy; errorHandler: HTTPError; }): Promise; static jwt(config: BCMSRouteProtectionJWTConfig): Promise>; static jwtApi({ j, a, }: { j?: BCMSRouteProtectionJWTConfig; a?: BCMSRouteProtectionApiConfig; }): Promise<{ token?: JWT; key?: BCMSApiKey; }>; static jwtBodyCheck(config: BCMSRouteProtectionJWTAndBodyCheckConfig): Promise>; static createJwtPreRequestHandler(roleNames: JWTRoleName[], permissionName: JWTPermissionName): ControllerMethodPreRequestHandler; static createJwtApiPreRequestHandler(config: { roleNames: JWTRoleName[]; permissionName: JWTPermissionName; }): ControllerMethodPreRequestHandler<{ token?: JWT; key?: BCMSApiKey; }>; static createJwtAndBodyCheckPreRequestHandler(config: { roleNames: JWTRoleName[]; permissionName: JWTPermissionName; bodySchema: ObjectSchema; }): ControllerMethodPreRequestHandler>; }