import { EventFired, HandlerContext, HandlerResult } from "@atomist/automation-client";
import { HandleEvent } from "@atomist/automation-client/lib/HandleEvent";
import { ExecuteGoalResult, GoalExecutionListener, GoalImplementationMapper, ProgressLog, SdmGoalEvent, SoftwareDeliveryMachineConfiguration } from "@atomist/sdm";
import { OnAnyRequestedSdmGoal } from "../../../../typings/types";
/**
 * Handle an SDM request goal. Used for many implementation types.
 */
export declare class FulfillGoalOnRequested implements HandleEvent<OnAnyRequestedSdmGoal.Subscription> {
    private readonly implementationMapper;
    private readonly goalExecutionListeners;
    configuration: SoftwareDeliveryMachineConfiguration;
    constructor(implementationMapper: GoalImplementationMapper, goalExecutionListeners: GoalExecutionListener[]);
    handle(event: EventFired<OnAnyRequestedSdmGoal.Subscription>, ctx: HandlerContext): Promise<HandlerResult>;
}
export declare function reportStart(sdmGoal: SdmGoalEvent, progressLog: ProgressLog): Promise<void>;
export declare function reportEndAndClose(result: ExecuteGoalResult, start: number, progressLog: ProgressLog): Promise<void>;
//# sourceMappingURL=FulfillGoalOnRequested.d.ts.map