/** * Express Middleware Adapter for Beltic Verification * * Provides Express middleware for verifying incoming agent requests. */ import type { Response, RequestHandler } from 'express'; import { type VerifyAgentRequestOptions, type AgentVerificationResult } from '../verifier.js'; /** * Express adapter options extending base verification options. */ export interface ExpressAdapterOptions extends Omit { /** Reject requests that fail verification (default: true) */ rejectOnFailure?: boolean; /** Custom error response handler */ onError?: (result: AgentVerificationResult, res: Response) => void; } /** * Augment Express Request to include verified agent info. */ declare global { namespace Express { interface Request { verifiedAgent?: AgentVerificationResult; } } } /** * Create an Express middleware for verifying agent requests. * * @param options - Base verification options * @returns Express middleware function * * @example * ```typescript * import express from 'express'; * import { createVerifyMiddleware } from '@belticlabs/verifier/express'; * * const app = express(); * * // Global middleware for all /api routes * app.use('/api', createVerifyMiddleware({ * platformJwksUrl: 'https://console.beltic.dev/.well-known/jwks.json', * })); * * app.post('/api/products', (req, res) => { * // req.verifiedAgent contains verification result * console.log('Agent:', req.verifiedAgent?.agentId); * res.json({ products: [] }); * }); * ``` */ export declare function createVerifyMiddleware(options: ExpressAdapterOptions): RequestHandler; /** * Create a scope-checking middleware that runs after verification. * * @param requiredScopes - Scopes required for this route * @returns Express middleware function * * @example * ```typescript * import { createVerifyMiddleware, requireScopes } from '@belticlabs/verifier/express'; * * app.use('/api', createVerifyMiddleware({ platformJwksUrl: '...' })); * * app.post('/api/checkout', requireScopes(['shopping:checkout']), (req, res) => { * // Only reachable with shopping:checkout scope * }); * ``` */ export declare function requireScopes(requiredScopes: string[]): RequestHandler; //# sourceMappingURL=express.d.ts.map