/** * Configuration for the MutuallyExclusiveScripts policy. * * @alpha */ export interface MutuallyExclusiveScriptsConfig { /** * List of mutually exclusive script groups. Each group is an array of script names * where at most one script from the group can be present. * * Packages can have zero scripts from the group (all optional), but cannot have * multiple scripts from the same group. * * @example * ```typescript * // Allow "test:unit" OR "test:vitest" OR neither, but not both * groups: [["test:unit", "test:vitest"]] * ``` */ groups: string[][]; } /** * A policy that validates mutually exclusive script groups in package.json. * * @remarks * Use this policy when you want to enforce that only one script from a group * can exist in a package. This is useful for ensuring that packages don't have * conflicting scripts (e.g., both "lint:eslint" and "lint:biome"). * * @example * ```typescript * import { policy } from "repopo"; * import { MutuallyExclusiveScripts } from "repopo/policies"; * * policy(MutuallyExclusiveScripts, { * groups: [ * ["lint:eslint", "lint:biome"], * ["test:jest", "test:vitest"], * ], * }) * ``` * * @alpha */ export declare const MutuallyExclusiveScripts: import("../policy.js").PolicyShape; //# sourceMappingURL=MutuallyExclusiveScripts.d.ts.map