import type { AgentIntegrationConfig, AgentJsonConfig } from '@n8n/api-types';
import type { User } from '@n8n/db';
import { Telemetry } from '../../telemetry';
import type { Agent } from './entities/agent.entity';
import { isUnconfiguredAgent } from './utils/agent-capabilities';
export { isUnconfiguredAgent };
export type AgentActor = 'user' | 'builder' | 'mcp';
export type AgentMutationTelemetryContext = {
    user: User;
    modifiedBy: AgentActor;
};
export type AgentConfigPart = 'instructions' | 'model' | 'credential' | 'memory' | 'name' | 'config' | 'tools' | 'providerTools' | 'skills' | 'tasks' | 'triggers' | 'subAgents' | 'mcpServers' | 'vectorStores';
export declare function diffAgentConfigParts(previousSchema: AgentJsonConfig | null, nextSchema: AgentJsonConfig | null, previousIntegrations: AgentIntegrationConfig[], nextIntegrations: AgentIntegrationConfig[], sidecarChanges?: Partial<Record<'tools' | 'skills' | 'tasks', boolean>>): AgentConfigPart[];
export declare class AgentModificationTelemetryService {
    private readonly telemetry;
    constructor(telemetry: Telemetry);
    record({ agent, projectId, user, by, changedParts, wasUnconfigured, }: {
        agent: Agent;
        projectId: string;
        user: User;
        by: AgentActor;
        changedParts: AgentConfigPart[];
        wasUnconfigured: boolean;
    }): void;
}
