import { HandleCommand } from "@atomist/automation-client/lib/HandleCommand";
import { OnCommand } from "@atomist/automation-client/lib/onCommand";
import { CommandDetails } from "@atomist/automation-client/lib/operations/CommandDetails";
import { NoParameters } from "@atomist/automation-client/lib/SmartParameters";
import { Maker } from "@atomist/automation-client/lib/util/constructionUtils";
import { MachineOrMachineOptions } from "../machine/toMachineOptions";
/**
 * Wrap a function in a command handler, allowing use of custom parameters.
 * Targeting (targets property) is handled automatically if the parameters
 * do not implement TargetsParams
 * @param sdm machine or options
 * @param commandMaker function to create command function
 * @param name command name
 * @param paramsMaker parameters factory, typically the name of a class with a no arg constructor
 * @param details optional details to customize behavior
 * Add intent "edit <name>"
 */
export declare function createCommand<PARAMS = NoParameters>(sdm: MachineOrMachineOptions, commandMaker: (sdm: MachineOrMachineOptions) => OnCommand<PARAMS>, name: string, paramsMaker?: Maker<PARAMS>, details?: Partial<CommandDetails>): HandleCommand<PARAMS>;
//# sourceMappingURL=createCommand.d.ts.map