import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
import { Observable } from 'rxjs';
import { LogWriterService } from '../services/log-writer.service';
import { TraceContextService } from '../services/trace-context.service';
import { SamplingService } from '../services/sampling.service';
import { AlertService } from '../services/alert.service';
import { StructuredLoggerService } from '../services/structured-logger.service';
export declare class LoggingInterceptor implements NestInterceptor {
    private logWriter;
    private traceContextService;
    private samplingService;
    private alertService;
    private structuredLogger;
    private readonly jsonEnabled;
    constructor(logWriter?: LogWriterService, traceContextService?: TraceContextService, samplingService?: SamplingService, alertService?: AlertService, structuredLogger?: StructuredLoggerService);
    setServices(services: {
        logWriter?: LogWriterService;
        traceContextService?: TraceContextService;
        samplingService?: SamplingService;
        alertService?: AlertService;
        structuredLogger?: StructuredLoggerService;
    }): void;
    setLogWriter(logWriter: LogWriterService): void;
    intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
    private writeToDatabase;
    private createFallbackTraceContext;
    private logRequest;
    private logResponse;
    private logError;
    private generateRequestId;
    private generateRandom;
    private sanitizeBody;
    private sanitizeData;
}
