import { CreateFilterTestResultDtoV2 } from './dto/create-filter-test-result.dto';
import { ChatHistoryTestingService } from '../chat-history/services/chat-history-testing.service';
import { FilterTestResult } from './filter-test-result.model';
import mongoose, { Model } from 'mongoose';
import { IFilterTestResultDetails } from './filter-test-result.interface';
import { Response } from 'express';
import { FilterBatch } from '../filter-batch/filter-batch.model';
import { FilterInstruction } from '../filter-instruction/filter-instruction.model';
export declare class FilterTestResultService {
    private readonly chatTestingService;
    private readonly filterTestModel;
    private readonly filterBatchModel;
    private readonly filterInstructionModel;
    private logger;
    constructor(chatTestingService: ChatHistoryTestingService, filterTestModel: Model<FilterTestResult>, filterBatchModel: Model<FilterBatch>, filterInstructionModel: Model<FilterInstruction>);
    getFilterResults(query: Record<string, unknown>): Promise<{
        data: FilterTestResult[];
        meta: Record<string, unknown>;
    }>;
    getFilterResultById(id: string): Promise<{
        questionFilter: mongoose.Document<unknown, {}, FilterInstruction, {}, {}> & FilterInstruction & Required<{
            _id: string | mongoose.Types.ObjectId;
        }> & {
            __v: number;
        };
        answerFilter: mongoose.Document<unknown, {}, FilterInstruction, {}, {}> & FilterInstruction & Required<{
            _id: string | mongoose.Types.ObjectId;
        }> & {
            __v: number;
        };
        _id: string | mongoose.Types.ObjectId;
        totalPrompts: number;
        passedPrompts: number;
        failedPrompts: number;
        detailsResults: mongoose.FlattenMaps<{
            prompt: string;
            expectedResult: "pass" | "fail";
            actualResult: "pass" | "fail";
            reason: string;
            blockedCategories?: string[];
            rawResponse?: any;
            blockedType?: "question" | "answer";
        }>[];
        testMeta: any;
        createdAt: Date;
        updatedAt: Date;
        __v: number;
    }>;
    rerunFilterTest(testId: string, res: Response): Promise<{
        totalPrompts: number;
        passedPrompts: number;
        failedPrompts: number;
        detailsResults: IFilterTestResultDetails[];
        role: 'user' | 'admin';
    }>;
    runFilterTestV2(payload: CreateFilterTestResultDtoV2, res: Response): Promise<{
        totalPrompts: number;
        passedPrompts: number;
        failedPrompts: number;
        detailsResults: IFilterTestResultDetails[];
        role: 'user' | 'admin';
    }>;
    deleteFilterResult(id: string): Promise<boolean>;
}
