UNPKG

n8n

Version:

n8n Workflow Automation Tool

59 lines (58 loc) 3.15 kB
import { type AgentCredentialIntegration, type AgentIntegrationStatusResponse } from '@n8n/api-types'; import { Logger } from '@n8n/backend-common'; import { GlobalConfig } from '@n8n/config'; import { InstanceSettings } from 'n8n-core'; import { CredentialsFinderService } from '../../../credentials/credentials-finder.service'; import { CredentialsService } from '../../../credentials/credentials.service'; import type { PubSubCommandMap } from '../../../scaling/pubsub/pubsub.event-map'; import { Publisher } from '../../../scaling/pubsub/publisher.service'; import { UrlService } from '../../../services/url.service'; import { ChatIntegrationRegistry } from './agent-chat-integration'; import type { Agent } from '../entities/agent.entity'; import { AgentRepository } from '../repositories/agent.repository'; type WebhookHandler = (request: Request, options?: { waitUntil?: (task: Promise<unknown>) => void; }) => Promise<Response>; interface ChatInstance { initialize(): Promise<void>; shutdown(): Promise<void>; webhooks: Record<string, WebhookHandler>; onNewMention: (handler: unknown) => void; onSubscribedMessage: (handler: unknown) => void; onAction: (handler: unknown) => void; } export declare class ChatIntegrationService { private readonly logger; private readonly agentRepository; private readonly credentialsService; private readonly credentialsFinderService; private readonly urlService; private readonly integrationRegistry; private readonly instanceSettings; private readonly publisher; private readonly globalConfig; private readonly connections; constructor(logger: Logger, agentRepository: AgentRepository, credentialsService: CredentialsService, credentialsFinderService: CredentialsFinderService, urlService: UrlService, integrationRegistry: ChatIntegrationRegistry, instanceSettings: InstanceSettings, publisher: Publisher, globalConfig: GlobalConfig); broadcastIntegrationChange(agentId: string, type: string, credentialId: string, action: 'connect' | 'disconnect'): Promise<void>; private connectionKey; private connectionTypeFromKey; connect(agentId: string, credentialId: string, integrationType: string, userId: string, projectId: string, options?: { skipExternalHooks?: boolean; }): Promise<void>; disconnect(agentId: string, type?: string, credentialId?: string): Promise<void>; disconnectAll(): Promise<void>; disconnectLeaderOnlyIntegrations(): Promise<void>; syncToConfig(agent: Agent, previous: AgentCredentialIntegration[], next: AgentCredentialIntegration[]): Promise<void>; getStatus(agentId: string): AgentIntegrationStatusResponse & { connections: number; }; getChatInstance(agentId: string): ChatInstance | undefined; getWebhookHandler(agentId: string, platform: string): WebhookHandler | undefined; reconnectAll(): Promise<void>; handleIntegrationChanged(payload: PubSubCommandMap['agent-chat-integration-changed']): Promise<void>; private disconnectOne; private resolveUser; private decryptCredential; private buildWebhookUrl; } export {};