import type { Folder, Project, User, WorkflowEntity } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { FolderFinderService } from '../../../../services/folder-finder.service';
import { ProjectService } from '../../../../services/project.service.ee';
import { WorkflowFinderService } from '../../../../workflows/workflow-finder.service';
import type { WorkflowSubWorkflowRequirement } from './workflow.types';
export type WorkflowExportOrigin = 'top-level' | 'folder' | 'project';
export interface AutoIncludedWorkflow {
    workflow: WorkflowEntity;
    placement: WorkflowExportOrigin;
    ownerProject: Project;
    folderChain: Folder[];
}
export interface AutoIncludedWorkflowResolution {
    autoIncludedWorkflows: AutoIncludedWorkflow[];
}
export declare class AutoIncludedWorkflowResolver {
    private readonly workflowFinder;
    private readonly folderFinder;
    private readonly projectService;
    private readonly sharedWorkflowRepository;
    constructor(workflowFinder: WorkflowFinderService, folderFinder: FolderFinderService, projectService: ProjectService, sharedWorkflowRepository: SharedWorkflowRepository);
    resolve(options: {
        user: User;
        requirements: WorkflowSubWorkflowRequirement[];
        topLevelWorkflowIds: string[];
        folderWorkflowIds: string[];
        projectWorkflowIds: string[];
    }): Promise<AutoIncludedWorkflowResolution>;
    private seedExportedOrigins;
    private propagateOrigins;
    private buildAutoIncludedWorkflows;
    private choosePlacement;
    private findExportableWorkflows;
    private findAccessibleFolderChains;
    private findAccessibleProjects;
}
