import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common'; import { ApmService } from './service/apm.service'; import { Observable } from 'rxjs'; export declare abstract class ApmInterceptorConstructor implements NestInterceptor { protected readonly apmService: ApmService; protected readonly mapFunction?: ((request: any) => UserContextKeys) | undefined; protected constructor(apmService: ApmService, mapFunction?: ((request: any) => UserContextKeys) | undefined); abstract intercept(context: ExecutionContext, next: CallHandler): Observable | Promise>; } export interface UserContextKeys { id?: string | number; username?: string; email?: string; } export declare type ApmFunctionFilter = (payload: T) => void; export interface ApmClassFilter { filter: ApmFunctionFilter; } export declare type ApmFilter = ApmClassFilter | ApmFunctionFilter; export declare type ApmError = string | Error | { message: string; params: any[]; }; export interface ApmOptions { httpUserMapFunction?: (request: any) => UserContextKeys; } export interface ApmAsyncOptions { useFactory?: (...args: any[]) => Promise | ApmOptions; inject?: any; }