import { ExtractAuthor, GoalInvocationParameters } from "../../../api-helper/listener/executeAutofixes";
import { AutofixRegistration } from "../../registration/AutofixRegistration";
import { CodeTransform } from "../../registration/CodeTransform";
import { TransformPresentation } from "../../registration/CodeTransformRegistration";
import { Goal } from "../Goal";
import { FulfillableGoalDetails, FulfillableGoalWithRegistrations } from "../GoalWithFulfillment";
/**
 * Extension to FulfillableGoalDetails to add optional TransformPresentation
 */
export interface AutofixGoalDetails extends FulfillableGoalDetails {
    /**
     * Optional TransformPresentation to use when pushing autofix commits to repositories.
     */
    transformPresentation?: TransformPresentation<GoalInvocationParameters>;
    /**
     * Optionally set autofix commit author to author of current head commit or to the
     * result of the provider ExtractAuthor function.
     */
    setAuthor?: boolean | ExtractAuthor;
}
/**
 * Goal that performs autofixes: For example, linting and adding license headers.
 */
export declare class Autofix extends FulfillableGoalWithRegistrations<AutofixRegistration<any>> {
    constructor(goalDetailsOrUniqueName?: AutofixGoalDetails | string, ...dependsOn: Goal[]);
    /**
     * Add given transform to this Autofix goal
     * @param transform
     * @param name
     */
    withTransform(transform: CodeTransform<any>, name?: string): this;
}
//# sourceMappingURL=Autofix.d.ts.map