import { AnyValue, TransformTemplate } from '../types';
export interface FlowSpec {
    tasks?: TaskSpecMap;
    configs?: FlowConfigs;
    options?: FlowOptions;
}
export declare class TaskSpecMap {
    [code: string]: TaskSpec;
}
export interface TaskSpec {
    requires?: string[];
    provides?: string[];
    defaultResult?: AnyValue;
    resolver?: TaskResolverSpec;
}
export interface TaskResolverSpec {
    name: string;
    params?: TaskParamsMap;
    results?: TaskResultsMap;
}
export interface TaskParamsMap {
    [code: string]: string | ResolverParamInfoValue | ResolverParamInfoTransform;
}
export interface ResolverParamInfoValue {
    value: AnyValue;
}
export interface ResolverParamInfoTransform {
    transform: TransformTemplate;
}
export interface TaskResultsMap {
    [code: string]: AnyValue;
}
export interface FlowOptions {
    throwErrorOnUnsolvableResult?: boolean;
    resolverAutomapParams?: boolean;
    resolverAutomapResults?: boolean;
}
export type FlowConfigs = FlowOptions;
