import { type AgentJsonConfig } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import { WorkflowRepository, type User } from '@n8n/db';
import { CredentialsService } from '../../credentials/credentials.service';
import { EventService } from '../../events/event.service';
import { AgentModificationTelemetryService, type AgentActor } from './agent-modification-telemetry.service';
import { AgentRuntimeCacheService } from './agent-runtime-cache.service';
import { AgentSetupCompletionService } from './agent-setup-completion.service';
import { AgentSkillsService } from './agent-skills.service';
import { NodeToolAiGatewayService } from './json-config/node-tool-ai-gateway.service';
import { AgentTaskRepository } from './repositories/agent-task.repository';
import { AgentRepository } from './repositories/agent.repository';
export declare class AgentConfigService {
    private readonly logger;
    private readonly agentRepository;
    private readonly agentTaskRepository;
    private readonly agentSkillsService;
    private readonly runtimeCacheService;
    private readonly credentialsService;
    private readonly workflowRepository;
    private readonly nodeToolAiGatewayService;
    private readonly eventService;
    private readonly setupCompletionService;
    private readonly modificationTelemetry;
    constructor(logger: Logger, agentRepository: AgentRepository, agentTaskRepository: AgentTaskRepository, agentSkillsService: AgentSkillsService, runtimeCacheService: AgentRuntimeCacheService, credentialsService: CredentialsService, workflowRepository: WorkflowRepository, nodeToolAiGatewayService: NodeToolAiGatewayService, eventService: EventService, setupCompletionService: AgentSetupCompletionService, modificationTelemetry: AgentModificationTelemetryService);
    getConfig(agentId: string, projectId: string): Promise<AgentJsonConfig>;
    validateConfig(raw: unknown): Promise<{
        valid: true;
        config: AgentJsonConfig;
    } | {
        valid: false;
        error: string;
    }>;
    updateConfig(agentId: string, projectId: string, config: unknown, user: User, options: {
        clearOmittedOptionalFields?: boolean;
        modifiedBy: AgentActor;
    }): Promise<{
        config: AgentJsonConfig;
        updatedAt: string;
        versionId: string | null;
    }>;
    private removeMissingConfigRefs;
    private validateSubAgentRefs;
}
