import { NodeTypes } from '../../../node-types';
import { CredentialImporter } from '../entities/credential/credential-importer';
import type { CredentialApplyResult, CredentialBindingRequest, CredentialResolution } from '../entities/credential/credential.types';
import { DataTableImporter } from '../entities/data-table/data-table-importer';
import type { DataTableImportPlan, DataTableImportRequest } from '../entities/data-table/data-table.types';
import type { FolderImportContext, FolderImportPlan, PreparedFolder } from '../entities/folder/folder-import.types';
import { FolderImporter } from '../entities/folder/folder-importer';
import { VariableImporter } from '../entities/variable/variable-importer';
import type { VariableImportPlan, VariableImportRequest } from '../entities/variable/variable.types';
import { type MissingNodeTypeRequirement } from '../entities/workflow/missing-node-type-mode';
import type { PreparedWorkflow, WorkflowImportOutcome, WorkflowImportPlan } from '../entities/workflow/workflow-import.types';
import { WorkflowImporter } from '../entities/workflow/workflow-importer';
import { WorkflowPublisher } from '../entities/workflow/workflow-publisher';
import type { BlockingIssue, ImportContext, ImportedFolderSummary, ImportFolderProperties, ImportWorkflowProperties, PackageImportBindings } from '../n8n-packages.types';
export interface ImportOrchestrationInput {
    context: ImportContext;
    folders: PreparedFolder[];
    workflows: PreparedWorkflow[];
    credentialRequest: CredentialBindingRequest;
    dataTableRequest: DataTableImportRequest;
    variableRequest: VariableImportRequest;
    options: ImportWorkflowProperties & ImportFolderProperties;
    projectPendingCreation?: boolean;
}
export interface ImportOrchestrationResult {
    workflowOutcomes: WorkflowImportOutcome[];
    folderSummaries: ImportedFolderSummary[];
    bindings: PackageImportBindings;
    credentialResult: CredentialApplyResult;
    dataTablePlan: DataTableImportPlan;
    variablePlan: VariableImportPlan;
}
export interface ImportPlan {
    input: ImportOrchestrationInput;
    folderContext: FolderImportContext;
    credentialPlan: CredentialResolution;
    workflowPlan: WorkflowImportPlan;
    folderPlan: FolderImportPlan;
    dataTablePlan: DataTableImportPlan;
    variablePlan: VariableImportPlan;
    missingNodeTypes: MissingNodeTypeRequirement[];
    blockingIssues: BlockingIssue[];
}
export declare class ImportOrchestrator {
    private readonly credentialImporter;
    private readonly dataTableImporter;
    private readonly variableImporter;
    private readonly folderImporter;
    private readonly workflowImporter;
    private readonly workflowPublisher;
    private readonly nodeTypes;
    constructor(credentialImporter: CredentialImporter, dataTableImporter: DataTableImporter, variableImporter: VariableImporter, folderImporter: FolderImporter, workflowImporter: WorkflowImporter, workflowPublisher: WorkflowPublisher, nodeTypes: NodeTypes);
    import(input: ImportOrchestrationInput): Promise<ImportOrchestrationResult>;
    plan(input: ImportOrchestrationInput): Promise<ImportPlan>;
    apply(plan: ImportPlan): Promise<ImportOrchestrationResult>;
    private collectBlockingIssues;
}
