import type { InstanceAiContext, ExecutionResult, ExecutionDebugInfo, NodeOutputResult, ServiceProxyConfig } from '@n8n/instance-ai'; import { GlobalConfig } from '@n8n/config'; import type { User } from '@n8n/db'; import { InstanceAiSettingsService } from './instance-ai-settings.service'; import { AiBuilderTemporaryWorkflowRepository, ExecutionRepository, ProjectRepository, SharedWorkflowRepository, WorkflowRepository } from '@n8n/db'; import { Logger } from '@n8n/backend-common'; import { type ExecutionError } from 'n8n-workflow'; import { InstanceSettings } from 'n8n-core'; import { ActiveExecutions } from '../../active-executions'; import { CredentialsFinderService } from '../../credentials/credentials-finder.service'; import { CredentialsService } from '../../credentials/credentials.service'; import { EventService } from '../../events/event.service'; import { ExecutionPersistence } from '../../executions/execution-persistence'; import { License } from '../../license'; import { LoadNodesAndCredentials } from '../../load-nodes-and-credentials'; import { NodeTypes } from '../../node-types'; import { DataTableRepository } from '../../modules/data-table/data-table.repository'; import { DataTableService } from '../../modules/data-table/data-table.service'; import { SourceControlPreferencesService } from '../../modules/source-control.ee/source-control-preferences.service.ee'; import { DynamicNodeParametersService } from '../../services/dynamic-node-parameters.service'; import { FolderService } from '../../services/folder.service'; import { ProjectService } from '../../services/project.service.ee'; import { RoleService } from '../../services/role.service'; import { SsrfProtectionService } from '../../services/ssrf/ssrf-protection.service'; import { TagService } from '../../services/tag.service'; import { WorkflowFinderService } from '../../workflows/workflow-finder.service'; import { WorkflowHistoryService } from '../../workflows/workflow-history/workflow-history.service'; import { WorkflowService } from '../../workflows/workflow.service'; import { EnterpriseWorkflowService } from '../../workflows/workflow.service.ee'; import { Telemetry } from '../../telemetry'; import { WorkflowRunner } from '../../workflow-runner'; export declare class InstanceAiAdapterService { private readonly workflowService; private readonly workflowFinderService; private readonly workflowRepository; private readonly sharedWorkflowRepository; private readonly projectRepository; private readonly executionRepository; private readonly credentialsService; private readonly credentialsFinderService; private readonly activeExecutions; private readonly workflowRunner; private readonly loadNodesAndCredentials; private readonly nodeTypes; private readonly instanceSettings; private readonly dataTableService; private readonly dataTableRepository; private readonly dynamicNodeParametersService; private readonly folderService; private readonly projectService; private readonly tagService; private readonly sourceControlPreferencesService; private readonly settingsService; private readonly workflowHistoryService; private readonly enterpriseWorkflowService; private readonly license; private readonly executionPersistence; private readonly eventService; private readonly roleService; private readonly telemetry; private readonly aiBuilderTemporaryWorkflowRepository; private readonly ssrfProtectionService; private readonly logger; private readonly allowSendingParameterValues; private nodesCache; private readonly NODES_CACHE_TTL_MS; private getNodesFromCache; constructor(logger: Logger, globalConfig: GlobalConfig, workflowService: WorkflowService, workflowFinderService: WorkflowFinderService, workflowRepository: WorkflowRepository, sharedWorkflowRepository: SharedWorkflowRepository, projectRepository: ProjectRepository, executionRepository: ExecutionRepository, credentialsService: CredentialsService, credentialsFinderService: CredentialsFinderService, activeExecutions: ActiveExecutions, workflowRunner: WorkflowRunner, loadNodesAndCredentials: LoadNodesAndCredentials, nodeTypes: NodeTypes, instanceSettings: InstanceSettings, dataTableService: DataTableService, dataTableRepository: DataTableRepository, dynamicNodeParametersService: DynamicNodeParametersService, folderService: FolderService, projectService: ProjectService, tagService: TagService, sourceControlPreferencesService: SourceControlPreferencesService, settingsService: InstanceAiSettingsService, workflowHistoryService: WorkflowHistoryService, enterpriseWorkflowService: EnterpriseWorkflowService, license: License, executionPersistence: ExecutionPersistence, eventService: EventService, roleService: RoleService, telemetry: Telemetry, aiBuilderTemporaryWorkflowRepository: AiBuilderTemporaryWorkflowRepository, ssrfProtectionService: SsrfProtectionService); createContext(user: User, options?: { searchProxyConfig?: ServiceProxyConfig; pushRef?: string; threadId?: string; }): InstanceAiContext; private buildLicenseHints; private assertInstanceNotReadOnly; private createProjectScopeHelpers; private createWorkflowAdapter; private createExecutionAdapter; private createCredentialAdapter; private createDataTableAdapter; private readonly webResearchCache; private readonly searchCache; private createWebResearchAdapter; private buildSearchMethod; private _nodeDefinitionDirs?; getNodeDefinitionDirs(): string[]; private createNodeAdapter; private createWorkspaceAdapter; } interface DataTableRecord { id: string; name: string; projectId: string; } interface DataTableIdOrNameRepository { findOneBy: (where: { id: string; }) => Promise; findBy: (where: { name: string; projectId?: string; }) => Promise; } interface DataTableResolverLogger { warn: (message: string, meta?: Record) => void; } export type ResolveDataTableResult = { kind: 'hit'; table: DataTableRecord; } | { kind: 'miss'; } | { kind: 'ambiguous'; candidates: DataTableRecord[]; }; export declare function resolveDataTableByIdOrName(repository: DataTableIdOrNameRepository, logger: DataTableResolverLogger, idOrName: string, options?: { projectIdFilter?: string; accessFilter?: (id: string) => Promise; }): Promise; export declare function truncateResultData(resultData: Record): Record; export declare function extractExecutionResult(executionRepository: ExecutionRepository, executionId: string, includeOutputData?: boolean): Promise; export declare function formatExecutionError(error: ExecutionError, includeUpstreamDetails: boolean): string; export declare function truncateNodeOutput(items: unknown[]): unknown[] | unknown; export declare function extractNodeOutput(executionRepository: ExecutionRepository, executionId: string, nodeName: string, options?: { startIndex?: number; maxItems?: number; }): Promise; export declare function extractExecutionDebugInfo(executionRepository: ExecutionRepository, executionId: string, includeOutputData?: boolean): Promise; export {};