import type { RedactionFloor } from '@n8n/api-types'; import { LicenseState, Logger } from '@n8n/backend-common'; import { GlobalConfig } from '@n8n/config'; import type { User, Project } from '@n8n/db'; import { ProjectRepository, SharedWorkflowRepository, TagRepository, WorkflowEntity, WorkflowRepository } from '@n8n/db'; import { CredentialsFinderService } from '../credentials/credentials-finder.service'; import { EventService } from '../events/event.service'; import type { WorkflowActionSource } from '../events/maps/relay.event-map'; import { ExternalHooks } from '../external-hooks'; import { McpSettingsService } from '../modules/mcp/mcp.settings.service'; import { InstanceRedactionEnforcementService } from '../modules/redaction/instance-redaction-enforcement.service'; import { NodeTypes } from '../node-types'; import { PolicyEnforcementService } from '../policy/policy-enforcement.service'; import { FolderService } from '../services/folder.service'; import { ProjectService } from '../services/project.service.ee'; import { TagService } from '../services/tag.service'; import * as WorkflowHelpers from '../workflow-helpers'; import { WorkflowHookContextService } from '../workflow-hook-context.service'; import { WorkflowFinderService } from './workflow-finder.service'; import { WorkflowHistoryService } from './workflow-history/workflow-history.service'; import { WorkflowValidationService } from './workflow-validation.service'; import { EnterpriseWorkflowService } from './workflow.service.ee'; export interface WorkflowCreateBatchContext { project: Project; allowedCredentialIds: Set; checkedCredentialIds: Set; credentialResolutionCache: WorkflowHelpers.ReplaceInvalidCredentialsCache; redactionFloor: RedactionFloor; autoExposeNewWorkflows: boolean; } export declare class WorkflowCreationService { private readonly logger; private readonly sharedWorkflowRepository; private readonly tagService; private readonly workflowHistoryService; private readonly externalHooks; private readonly projectService; private readonly eventService; private readonly globalConfig; private readonly workflowFinderService; private readonly licenseState; private readonly projectRepository; private readonly tagRepository; private readonly credentialsFinderService; private readonly folderService; private readonly enterpriseWorkflowService; private readonly nodeTypes; private readonly workflowValidationService; private readonly instanceRedactionEnforcementService; private readonly workflowHookContextService; private readonly mcpSettingsService; private readonly policyEnforcementService; private readonly workflowRepository; constructor(logger: Logger, sharedWorkflowRepository: SharedWorkflowRepository, tagService: TagService, workflowHistoryService: WorkflowHistoryService, externalHooks: ExternalHooks, projectService: ProjectService, eventService: EventService, globalConfig: GlobalConfig, workflowFinderService: WorkflowFinderService, licenseState: LicenseState, projectRepository: ProjectRepository, tagRepository: TagRepository, credentialsFinderService: CredentialsFinderService, folderService: FolderService, enterpriseWorkflowService: EnterpriseWorkflowService, nodeTypes: NodeTypes, workflowValidationService: WorkflowValidationService, instanceRedactionEnforcementService: InstanceRedactionEnforcementService, workflowHookContextService: WorkflowHookContextService, mcpSettingsService: McpSettingsService, policyEnforcementService: PolicyEnforcementService, workflowRepository: WorkflowRepository); prepareBatchContext(user: User, projectId: string, parentFolderIds: string[], workflows: WorkflowEntity[], credentialBindings: ReadonlyMap): Promise; createWorkflow(user: User, newWorkflow: WorkflowEntity, options?: { tagIds?: string[]; parentFolderId?: string; projectId?: string; sourceWorkflowId?: string; autosaved?: boolean; uiContext?: string; publicApi?: boolean; source?: WorkflowActionSource; versionName?: string; versionDescription?: string; batchContext?: WorkflowCreateBatchContext; }): Promise; private findParentFolderInProjectOrFail; private readActiveRedactionFloor; private readAutoExposeNewWorkflows; private resolveRedactionPolicyOnCreate; private resolveMcpExposureOnCreate; }