import { Configuration } from "@atomist/automation-client/lib/configuration";
import { ExecuteGoalResult } from "../ExecuteGoalResult";
import { GoalInvocation } from "../GoalInvocation";
/**
 * Schedule a goal in an environment (container or process) for fulfillment.
 */
export interface GoalScheduler {
    /**
     * Optionally initialize the GoalScheduler
     * @param configuration
     */
    initialize?(configuration: Configuration): Promise<void>;
    /**
     * Indicate if this GoalScheduler supports scheduling provided goal
     * @param gi
     */
    supports(gi: GoalInvocation): Promise<boolean>;
    /**
     * Schedule the provided goal
     * @param gi
     */
    schedule(gi: GoalInvocation): Promise<ExecuteGoalResult>;
}
//# sourceMappingURL=GoalScheduler.d.ts.map