import { Task } from "./task.resolve";
import Immutable = require('immutable');
import { CommandTrigger } from "./command.run";
import Rx = require('rx');
/**
 * A task context is just an Immutable Map of key=>value pairs
 * that may be used to provide addition context to the task running
 * environment. This is especially useful in situations where you need
 * to do something that MUST block the task running altogether. An example
 * would be hashing files/directories to determine if a task/group of tasks should
 * run.
 */
export default function getContext(tasks: Task[], trigger: CommandTrigger): Rx.Observable<Immutable.Map<string, any>>;
