import { type AgentExecutionCounter, type BuiltTelemetry, type CredentialProvider, type GenerateResult, type SubAgentTaskPath } from '@n8n/agents';
import type { SubAgentSpawnRequest } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import type { User } from '@n8n/db';
import { AgentExecutionService } from '../agent-execution.service';
import type { AgentRuntimeInstrumentation } from '../agent-runtime-instrumentation';
import { SubAgentSourceResolver } from './sub-agent-source-resolver';
export interface SubAgentForegroundRunContext {
    projectId: string;
    parentAgentId?: string;
    credentialProvider: CredentialProvider;
    executionCounter?: AgentExecutionCounter;
    abortSignal?: AbortSignal;
    telemetry?: BuiltTelemetry;
    user?: User;
    instrumentation?: AgentRuntimeInstrumentation;
}
export interface SubAgentForegroundResult {
    taskPath: SubAgentTaskPath;
    threadId: string;
    status: 'completed' | 'failed';
    result: GenerateResult;
}
export declare class SubAgentForegroundRunner {
    private readonly sourceResolver;
    private readonly agentExecutionService;
    private readonly logger;
    constructor(sourceResolver: SubAgentSourceResolver, agentExecutionService: AgentExecutionService, logger: Logger);
    runForeground(request: SubAgentSpawnRequest, context: SubAgentForegroundRunContext): Promise<SubAgentForegroundResult>;
    private recordSubAgentExecution;
}
