///
import { Flow as FlowDefinition, Node, NodeDefinition, NodeDefinitionProviderMap, NodeDefinitions } from '@chix/common';
import { EventEmitter } from 'events';
import { Dependencies, DependencyTypes, Workload } from '../types';
export interface LoaderResponse {
dependencies?: Dependencies;
nodeDefinitions: NodeDefinitionProviderMap;
providerLocation?: string;
}
export interface ILoader extends EventEmitter {
load(flow: FlowDefinition | FlowDefinition[], update?: boolean): Promise;
getWorkLoad(flows: FlowDefinition[], defaultProvider: string, update: boolean): Workload;
addNodeDefinitions(identifier: string, nodeDefs: NodeDefinitions | Array): void;
addNodeDefinition(identifier: string, nodeDef: FlowDefinition | NodeDefinition): void;
hasNodeDefinition(providerUrl: string, ns: string, name: string): boolean;
getNodeDefinition(node: Node, flow: FlowDefinition): Promise;
getNodeDefinitionFrom(provider: string, ns: string, name: string): FlowDefinition | NodeDefinition;
saveNodeDefinition(_providerLocation: string, _nodeDefinition: FlowDefinition | NodeDefinition): void;
getNodeDefinitions(provider?: string): NodeDefinitions | NodeDefinitionProviderMap;
setNodeDefinitions(nodeDefinitions: NodeDefinitionProviderMap): void;
hasDependencies(type?: DependencyTypes): boolean;
getDependencies(type?: DependencyTypes): {
[dependency: string]: string;
} | {
npm?: {
[dependency: string]: string;
} | undefined;
};
setDependencies(dependencies: Dependencies): void;
}