import { type AgentIntegrationConfig, type ChatIntegrationDescriptor } from '@n8n/api-types';
import 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 type { Agent } from './entities/agent.entity';
import { ChatIntegrationRegistry } from './integrations/agent-chat-integration';
import { ChatIntegrationService } from './integrations/chat-integration.service';
import { AgentRepository } from './repositories/agent.repository';
export interface CredentialIntegrationMutationContext {
    user: User;
    modifiedBy: AgentActor;
    broadcast?: boolean;
}
export declare class AgentIntegrationPersistenceService {
    private readonly agentRepository;
    private readonly chatIntegrationService;
    private readonly runtimeCacheService;
    private readonly chatIntegrationRegistry;
    private readonly eventService;
    private readonly modificationTelemetry;
    private readonly credentialsService;
    private readonly setupCompletionService;
    constructor(agentRepository: AgentRepository, chatIntegrationService: ChatIntegrationService, runtimeCacheService: AgentRuntimeCacheService, chatIntegrationRegistry: ChatIntegrationRegistry, eventService: EventService, modificationTelemetry: AgentModificationTelemetryService, credentialsService: CredentialsService, setupCompletionService: AgentSetupCompletionService);
    listChatIntegrations(): ChatIntegrationDescriptor[];
    saveCredentialIntegration(agent: Agent, integration: AgentIntegrationConfig, context: CredentialIntegrationMutationContext): Promise<Agent>;
    removeCredentialIntegration(agent: Agent, type: string, credentialId: string, context: CredentialIntegrationMutationContext): Promise<Agent>;
    private recordIntegrationMutation;
}
