/** * Turn the ruflo mods on (or off) for a project (ADR-404): merge the * settings, sync the policy projection, then make the plugins loadable with * `claude`. One path for `ruflo mods install`, `ruflo init` (and its wizard) * and `ruflo init upgrade --mods`; `removeMods` is `ruflo mods uninstall`. */ import { type Added, type InstallResult, type MarketplaceEntry, type Scope } from './install.js'; import { type Exec } from './plugin-repair.js'; export interface ApplyOptions { scope: Scope; dryRun?: boolean; /** Run `claude plugin marketplace …` and `claude plugin install …` (default true). */ pluginInstall?: boolean; /** * Skip the `claude` step under a test runner or CI (VITEST / CI set): an * init there must never clone from GitHub into whatever config dir is live. */ skipInTestEnv?: boolean; /** The marketplace to declare when the settings have none (default github ruvnet/ruflo). */ marketplace?: MarketplaceEntry; /** ADR-509 §2.2: plugins (name or id) to install past a high scan finding; each override is recorded. */ acceptRisk?: readonly string[]; /** Injectable for tests. */ exec?: Exec; } export interface ApplyResult { install: InstallResult; /** Whether every required plugin was left loadable (true when the step was skipped by request). */ resolvable: boolean; /** Why the `claude` step did not run, when it did not. */ skipped?: string; } /** One line per thing a run added; empty on a re-run. */ export declare function describeAdded(added: Added): string[]; /** What default-on means, said exactly (ADR-404 Amendment 1). */ export declare const LOAD_NOTE: string[]; export declare function applyMods(root: string, opts: ApplyOptions): Promise; /** * `ruflo mods uninstall`: `claude plugin uninstall` exactly the plugins ruflo * installed, then remove exactly the settings keys it added. */ export declare function removeMods(root: string, opts?: { dryRun?: boolean; exec?: Exec; }): Promise<{ settingsFiles: string[]; removed: boolean; dryRun: boolean; uninstalled: string[]; failed: string[]; }>; //# sourceMappingURL=apply.d.ts.map