import { IRequestOptions } from "@esri/arcgis-rest-request"; import OperationStack from "../OperationStack"; import { IHubRequestOptions } from "../hub-types"; /** * Container type for Piping in Hub */ export interface IPipeable { data: Type; stack: OperationStack; requestOptions?: IHubRequestOptions | IRequestOptions; } /** * Signature of a function that can be used with createOperationPipeline */ export type PipelineFn = (value: IPipeable) => Promise>; /** * Returns a function that orchestrates a pipeline of smaller functions. * See [Composing Workflows](../../../guides/composing-workflows) for more information. * * All the functions must adhere to the `PipelineFn` signature: * * `(value: IPipeable) => Promise>` * * Given an array of OperationPipeFns, run them in sequence and return the resultant promise * * i.e. `createOperationPipeline([fn1, fn2, f3])` will return in a function that chains * the functions like this: `fn1(input).then(fn2).then(fn3).then(result)` * * @param fns functions to be run in sequence * @returns Promise> */ export declare const createOperationPipeline: (fns: Array>) => (input: IPipeable) => Promise>;