import { GlobalConfig } from '@n8n/config';
import type { Scope } from '@n8n/permissions';
import type { EntityManager } from '@n8n/typeorm';
import { BinaryDataService, Logger } from 'n8n-core';
import { ActiveWorkflowManager } from '../active-workflow-manager';
import type { User } from '../databases/entities/user';
import type { WorkflowEntity } from '../databases/entities/workflow-entity';
import { ExecutionRepository } from '../databases/repositories/execution.repository';
import { SharedWorkflowRepository } from '../databases/repositories/shared-workflow.repository';
import { WorkflowTagMappingRepository } from '../databases/repositories/workflow-tag-mapping.repository';
import { WorkflowRepository } from '../databases/repositories/workflow.repository';
import { EventService } from '../events/event.service';
import { ExternalHooks } from '../external-hooks';
import { type ListQuery } from '../requests';
import { FolderService } from '../services/folder.service';
import { OrchestrationService } from '../services/orchestration.service';
import { OwnershipService } from '../services/ownership.service';
import { ProjectService } from '../services/project.service.ee';
import { RoleService } from '../services/role.service';
import { TagService } from '../services/tag.service';
import { WorkflowHistoryService } from './workflow-history.ee/workflow-history.service.ee';
import { WorkflowSharingService } from './workflow-sharing.service';
export declare class WorkflowService {
    private readonly logger;
    private readonly sharedWorkflowRepository;
    private readonly workflowRepository;
    private readonly workflowTagMappingRepository;
    private readonly binaryDataService;
    private readonly ownershipService;
    private readonly tagService;
    private readonly workflowHistoryService;
    private readonly orchestrationService;
    private readonly externalHooks;
    private readonly activeWorkflowManager;
    private readonly roleService;
    private readonly workflowSharingService;
    private readonly projectService;
    private readonly executionRepository;
    private readonly eventService;
    private readonly globalConfig;
    private readonly folderService;
    constructor(logger: Logger, sharedWorkflowRepository: SharedWorkflowRepository, workflowRepository: WorkflowRepository, workflowTagMappingRepository: WorkflowTagMappingRepository, binaryDataService: BinaryDataService, ownershipService: OwnershipService, tagService: TagService, workflowHistoryService: WorkflowHistoryService, orchestrationService: OrchestrationService, externalHooks: ExternalHooks, activeWorkflowManager: ActiveWorkflowManager, roleService: RoleService, workflowSharingService: WorkflowSharingService, projectService: ProjectService, executionRepository: ExecutionRepository, eventService: EventService, globalConfig: GlobalConfig, folderService: FolderService);
    getMany(user: User, options?: ListQuery.Options, includeScopes?: boolean, includeFolders?: boolean): Promise<{
        workflows: ((Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "tags" | "createdAt" | "updatedAt" | "name" | "versionId" | "active">>) | (import("../databases/entities/folder").Folder & {
            workflowCount: boolean;
            subFolderCount: number;
        } & {
            resource: "workflow" | "folder";
        }))[];
        count: number;
    }>;
    private processSharedWorkflows;
    private addSharedRelation;
    private addUserScopes;
    private cleanupSharedField;
    private mergeProcessedWorkflows;
    update(user: User, workflowUpdateData: WorkflowEntity, workflowId: string, tagIds?: string[], parentFolderId?: string, forceSave?: boolean): Promise<WorkflowEntity>;
    delete(user: User, workflowId: string): Promise<WorkflowEntity | undefined>;
    getWorkflowScopes(user: User, workflowId: string): Promise<Scope[]>;
    transferAll(fromProjectId: string, toProjectId: string, trx?: EntityManager): Promise<void>;
}
