import type { AgentEvalRunSummary } from '@n8n/api-types';
import { Logger, ModuleRegistry } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config';
import type { User } from '@n8n/db';
import { AgentEvalDatasetRepository, AgentEvalResultRepository, AgentEvalRunRepository } from '@n8n/db';
import { InstanceSettings } from 'n8n-core';
import { ConcurrencyControlService } from '../../concurrency/concurrency-control.service';
import { License } from '../../license';
import { AgentRepository } from '../../modules/agents/repositories/agent.repository';
import { DataTableService } from '../../modules/data-table/data-table.service';
import { EvalAgentExecutionService } from '../../modules/instance-ai/eval/agent-execution.service';
import { AgentEvalsFlagGate } from './agent-evals-flag-gate';
export declare class AgentEvalRunnerService {
    private readonly logger;
    private readonly globalConfig;
    private readonly instanceSettings;
    private readonly moduleRegistry;
    private readonly datasetRepository;
    private readonly runRepository;
    private readonly resultRepository;
    private readonly agentRepository;
    private readonly dataTableService;
    private readonly evalAgentExecutionService;
    private readonly concurrencyControl;
    private readonly license;
    private readonly flagGate;
    constructor(logger: Logger, globalConfig: GlobalConfig, instanceSettings: InstanceSettings, moduleRegistry: ModuleRegistry, datasetRepository: AgentEvalDatasetRepository, runRepository: AgentEvalRunRepository, resultRepository: AgentEvalResultRepository, agentRepository: AgentRepository, dataTableService: DataTableService, evalAgentExecutionService: EvalAgentExecutionService, concurrencyControl: ConcurrencyControlService, license: License, flagGate: AgentEvalsFlagGate);
    startRun(datasetId: string, projectId: string, user: User, options?: {
        timeoutMs?: number;
    }): Promise<{
        runId: string;
        finished: Promise<void>;
    }>;
    getRunSummary(runId: string, agentId: string): Promise<AgentEvalRunSummary>;
    private executeRun;
    private startRunDeadline;
    private acquireEvaluationSlot;
    private failRun;
    cleanupInterruptedRuns(): Promise<void>;
    private runCase;
    private resolveCases;
}
