import { Goal } from "../../api/goal/Goal";
import { SdmGoalEvent } from "../../api/goal/SdmGoalEvent";
import { GoalFulfillment, GoalFulfillmentCallback, GoalImplementation, GoalImplementationMapper, GoalSideEffect } from "../../api/goal/support/GoalImplementationMapper";
import { PushListenerInvocation } from "../../api/listener/PushListener";
/**
 * Concrete implementation of GoalImplementationMapper
 */
export declare class DefaultGoalImplementationMapper implements GoalImplementationMapper {
    private readonly implementations;
    private readonly sideEffects;
    private readonly callbacks;
    private readonly goals;
    hasImplementation(): boolean;
    findImplementationBySdmGoal(goal: SdmGoalEvent): GoalImplementation;
    addImplementation(implementation: GoalImplementation): this;
    addSideEffect(sideEffect: GoalSideEffect): this;
    addFulfillmentCallback(callback: GoalFulfillmentCallback): this;
    findFulfillmentByPush(goal: Goal, inv: PushListenerInvocation): Promise<GoalFulfillment | undefined>;
    findFulfillmentCallbackForGoal(sdmGoal: SdmGoalEvent): GoalFulfillmentCallback[];
    findGoalBySdmGoal(sdmGoal: SdmGoalEvent): Goal | undefined;
    private addGoal;
}
//# sourceMappingURL=DefaultGoalImplementationMapper.d.ts.map