import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
import { Observable } from 'rxjs';
import { IAppResponse } from '../interfaces/response.interface';
import { IResponseInterceptor, IInterceptorConfig } from '../interfaces/interceptor.interface';
export declare class ResponseInterceptor<T> implements NestInterceptor<T, IAppResponse<T>>, IResponseInterceptor<T> {
    private readonly logger;
    private readonly config;
    constructor(config?: IInterceptorConfig);
    intercept(context: ExecutionContext, next: CallHandler): Observable<IAppResponse<T>>;
    private buildMetadata;
    private enhanceExistingResponse;
    private createSuccessResponse;
    private extractRequestId;
    private generateRequestId;
}
