import { AutoCodeInspection } from "../../api/goal/common/AutoCodeInspection";
import { Autofix } from "../../api/goal/common/Autofix";
import { ExtensionPack } from "../../api/machine/ExtensionPack";
import { ReviewListenerRegistration } from "../../api/registration/ReviewListenerRegistration";
export interface NodeConfiguration {
    npm?: {
        publish?: {
            /**
             * Defaults to true! Provide false explicitly to disable
             */
            enabled?: boolean;
            access?: "public" | "restricted";
            tag?: {
                /**
                 * When creating a version name, we usually include the name of the branch unless it's the default branch.
                 * Should we include the name of the branch even when it's the default branch?
                 *
                 * If this is true, the version will look like 1.0.0-master.yyyymmddHHMMss
                 * If this is false, the version on the default branch will look like 1.0.0-yyyymmddHHMMss
                 */
                defaultBranch?: boolean;
            };
        };
    };
}
/**
 * Categories of functionality to enable
 */
export interface Categories {
    typescriptErrors?: boolean;
}
/**
 * Options determining what Node functionality is activated.
 */
export interface NodeSupportOptions {
    /**
     * Inspect goal to add inspections to.
     * Review functionality won't work otherwise.
     */
    inspectGoal?: AutoCodeInspection;
    /**
     * Autofix goal to add autofixes to.
     * Autofix functionality won't work otherwise.
     */
    autofixGoal?: Autofix;
    review: Categories;
    autofix: Categories;
    /**
     * Review listeners that let you publish review results.
     */
    reviewListeners?: ReviewListenerRegistration | ReviewListenerRegistration[];
}
/**
 * Install node support into your SDM.
 * @param options
 */
export declare function nodeSupport(options: NodeSupportOptions): ExtensionPack;
//# sourceMappingURL=nodeSupport.d.ts.map