import { Goal } from "../../api/goal/Goal";
import { ExecuteGoal } from "../../api/goal/GoalInvocation";
import { SdmGoalEvent } from "../../api/goal/SdmGoalEvent";
import { SoftwareDeliveryMachineConfiguration } from "../../api/machine/SoftwareDeliveryMachineOptions";
/**
 * Enum to describe goal sizes when creating mock goal executors
 */
export declare enum MockGoalSize {
    Small = 5,
    Medium = 20,
    Large = 60,
    ExtraLarge = 90
}
/**
 * Options to configure mocks for one particular goal
 */
export interface MockGoal {
    goal: Goal;
    size: MockGoalSize | number;
    result?: number;
    mock?: ExecuteGoal;
}
/**
 * Options for the mock goal executor support
 */
export interface MockOptions {
    enabled: boolean | ((goal: SdmGoalEvent) => boolean);
    defaultSize?: MockGoalSize | number;
    goals?: MockGoal[];
    randomBy?: number;
}
/**
 * Default mock options to be merged into custom options provided on configuration.sdm.mock
 */
export declare const DefaultMockOptions: MockOptions;
/**
 * Create mock goal executor for a certain goal
 * @param goal
 * @param configuration
 */
export declare function mockGoalExecutor(goal: Goal, sdmGoal: SdmGoalEvent, configuration: SoftwareDeliveryMachineConfiguration): ExecuteGoal | undefined;
export declare function randomize(size: MockGoalSize | number, randomBy: number): number;
//# sourceMappingURL=mock.d.ts.map