import 'reflect-metadata'; import { ExecutionContext } from '../types.js'; /** * Interceptor Interface * * Interceptors can transform the input or output of a tool execution. * They're executed after guards but before the actual tool handler. * * @example * ```typescript * @Interceptor() * export class TransformInterceptor implements InterceptorInterface { * async intercept(context: ExecutionContext, next: () => Promise) { * const result = await next(); * return { * success: true, * data: result, * timestamp: new Date().toISOString() * }; * } * } * ``` */ export interface InterceptorInterface { intercept(context: ExecutionContext, next: () => Promise): Promise; } /** * Interceptor constructor type */ export type InterceptorConstructor = new (...args: unknown[]) => InterceptorInterface; /** * Union type permitting either a class constructor or an instantiated/configured instance. */ export type InterceptorType = InterceptorConstructor | InterceptorInterface; //# sourceMappingURL=interceptor.interface.d.ts.map