import { OnEvent } from "@atomist/automation-client/lib/onEvent";
import { OnAnySdmGoalSet } from "../../../typings/types";
import { SoftwareDeliveryMachine } from "../../machine/SoftwareDeliveryMachine";
import { SoftwareDeliveryMachineConfiguration } from "../../machine/SoftwareDeliveryMachineOptions";
import { Goal, GoalDefinition } from "../Goal";
import { FulfillableGoal, FulfillableGoalDetails } from "../GoalWithFulfillment";
/**
 * Options to configure the Queue goal
 */
export interface QueueOptions {
    concurrent?: number;
    fetch?: number;
}
export declare const DefaultQueueOptions: QueueOptions;
/**
 * Goal to queue current goal set until it is the first in the list and can execute
 */
export declare class Queue extends FulfillableGoal {
    private readonly options;
    constructor(options?: FulfillableGoalDetails & QueueOptions, ...dependsOn: Goal[]);
    register(sdm: SoftwareDeliveryMachine): void;
}
export declare function handleSdmGoalSetEvent(options: QueueOptions, definition: GoalDefinition, configuration: SoftwareDeliveryMachineConfiguration): OnEvent<OnAnySdmGoalSet.Subscription>;
//# sourceMappingURL=Queue.d.ts.map