import { Logger } from '@n8n/backend-common'; import type { User, WorkflowEntity } from '@n8n/db'; import { ProjectRepository } from '@n8n/db'; import { ProjectService } from '../../../../services/project.service.ee'; import { WorkflowService } from '../../../../workflows/workflow.service'; import type { PersistedWorkflowPlanItem } from './workflow-import.types'; import { WorkflowPublishingPolicy, type WorkflowPublishingBlockedReason, type WorkflowPublishingOutcome } from './workflow-publishing-policy.types'; export interface WorkflowPublishingResult { workflow: WorkflowEntity; publishing: WorkflowPublishingOutcome; } export declare class WorkflowPublisher { private readonly logger; private readonly projectRepository; private readonly projectService; private readonly workflowService; constructor(logger: Logger, projectRepository: ProjectRepository, projectService: ProjectService, workflowService: WorkflowService); assertCanPublish(user: User, projectId: string, policy: WorkflowPublishingPolicy, projectPendingCreation?: boolean): Promise; apply(user: User, item: PersistedWorkflowPlanItem, workflow: WorkflowEntity, policy: WorkflowPublishingPolicy, publishBlocked: ReadonlyMap): Promise; }