import { File } from '../file/file';
import { IFile, RunOptions, RunResult } from '../types';
/**
 * Has a signature compatible with main, but if `script` is given instead of `command` option then it's
 * interpreted as a sequence of commands that are executed serially using [[main]]
 *
 * The output files of command N are added as input files for command n+1 replacing files with the same name.
 * This way users can write script-like behavior for complex tasks that require more than one command to be
 * implemented.
 *
 * Also it supports shell script comments (lines starting with `#` are ignored) and breaking a single command
 * in multiple lines using `\`.
 *
 * See [[RunOptions.script]] option.
 *
 * @returns the result of each command execution
 */
export declare function run<T extends IFile = IFile>(o: RunOptions): Promise<RunResult<T>>;
export declare function runOne(script: string, input?: File | File[]): Promise<IFile>;
