import { HandleCommand } from "@atomist/automation-client/lib/HandleCommand";
import { HandleEvent } from "@atomist/automation-client/lib/HandleEvent";
import { HandlerContext } from "@atomist/automation-client/lib/HandlerContext";
import { ProjectOperationCredentials } from "@atomist/automation-client/lib/operations/common/ProjectOperationCredentials";
import { ProjectEditor } from "@atomist/automation-client/lib/operations/edit/projectEditor";
import { NoParameters } from "@atomist/automation-client/lib/SmartParameters";
import { Maker } from "@atomist/automation-client/lib/util/constructionUtils";
import { CommandListenerInvocation } from "../../api/listener/CommandListener";
import { RepoTargets } from "../../api/machine/RepoTargets";
import { SoftwareDeliveryMachineOptions } from "../../api/machine/SoftwareDeliveryMachineOptions";
import { ProjectPredicate } from "../../api/mapping/PushTest";
import { CodeInspectionRegistration } from "../../api/registration/CodeInspectionRegistration";
import { CodeTransformOrTransforms } from "../../api/registration/CodeTransform";
import { CodeTransformRegistration } from "../../api/registration/CodeTransformRegistration";
import { CommandHandlerRegistration } from "../../api/registration/CommandHandlerRegistration";
import { CommandRegistration } from "../../api/registration/CommandRegistration";
import { EventHandlerRegistration } from "../../api/registration/EventHandlerRegistration";
import { GeneratorRegistration } from "../../api/registration/GeneratorRegistration";
import { NamedParameter, ParametersDefinition, ParametersListing } from "../../api/registration/ParametersDefinition";
import { RepoTargetingParameters } from "./RepoTargetingParameters";
import { MachineOrMachineOptions } from "./toMachineOptions";
export declare const GeneratorTag = "generator";
export declare const InspectionTag = "inspection";
export declare const TransformTag = "transform";
export declare function codeTransformRegistrationToCommand(sdm: MachineOrMachineOptions, ctr: CodeTransformRegistration<any>): Maker<HandleCommand>;
export declare function codeInspectionRegistrationToCommand<R>(sdm: MachineOrMachineOptions, cir: CodeInspectionRegistration<R, any>): Maker<HandleCommand>;
export declare function generatorRegistrationToCommand<P = any>(sdm: MachineOrMachineOptions, e: GeneratorRegistration<P>): Maker<HandleCommand<P>>;
export declare function commandHandlerRegistrationToCommand<P = NoParameters>(sdm: MachineOrMachineOptions, c: CommandHandlerRegistration<P>): Maker<HandleCommand<P>>;
export declare function eventHandlerRegistrationToEvent(sdm: MachineOrMachineOptions, e: EventHandlerRegistration<any, any>): Maker<HandleEvent>;
export declare class CommandListenerExecutionInterruptError extends Error {
    readonly message: string;
    constructor(message: string);
}
export declare function toCommandListenerInvocation<P>(c: CommandRegistration<P>, context: HandlerContext, parameters: P, sdm: SoftwareDeliveryMachineOptions): CommandListenerInvocation;
export declare const DryRunParameter: NamedParameter;
export declare const MsgIdParameter: NamedParameter;
export declare const JobNameParameter: NamedParameter;
export declare const JobDescriptionParameter: NamedParameter;
export declare const JobRequiredParameter: NamedParameter;
export declare function toParametersListing(p: ParametersDefinition<any>): ParametersListing;
/**
 * Convert to legacy automation-client "editor" signature
 * @param {CodeTransformOrTransforms<PARAMS>} ctot
 * @param {ProjectPredicate} projectPredicate
 * @return {ProjectEditor<PARAMS>}
 */
export declare function toScalarProjectEditor<PARAMS>(ctot: CodeTransformOrTransforms<PARAMS>, sdm: SoftwareDeliveryMachineOptions, projectPredicate?: ProjectPredicate): ProjectEditor<PARAMS>;
/**
 * Return a parameters maker that is targeting aware
 * @param {Maker<PARAMS>} paramsMaker
 * @param targets targets parameters to set if necessary
 * @return {Maker<EditorOrReviewerParameters & PARAMS>}
 */
export declare function toRepoTargetingParametersMaker<PARAMS>(paramsMaker: Maker<PARAMS>, targets: Maker<RepoTargets>): Maker<RepoTargetingParameters & PARAMS>;
/**
 * Takes a potential git branch name and returns a legalised iteration of it
 *
 * @param name the git branch name to sanitise.
 */
export declare function gitBranchCompatible(name: string): string;
export declare function resolveCredentialsPromise(creds: Promise<ProjectOperationCredentials> | ProjectOperationCredentials): Promise<ProjectOperationCredentials>;
//# sourceMappingURL=handlerRegistrations.d.ts.map