import type { CadenceConfig } from '@manehorizons/cadence-types'; import { type Occupancy } from './collision.js'; export type GuardVerdict = { ok: true; } | { ok: false; message: string; }; export interface GuardOpts { config: CadenceConfig; /** `--allow-phase-collision` — bypass the guard (the local `existsSync` refusal is unaffected). */ allow?: boolean; /** Sources to ignore when matching conflicts (settle passes `['local']` to drop self). */ excludeSources?: Occupancy['source'][]; /** Test seam: override the occupancy collector. Defaults to `gatherOccupancy`. */ gather?: (repoRoot: string, opts: { integrationRef: string; }) => Promise; } /** * Returns `{ ok: true }` when scaffolding `target` is safe, else * `{ ok: false, message }` naming each conflict and the suggested next free * number. Short-circuits to `ok` when the guard is disabled, bypassed, or the * target has no numeric token. Never throws (the collector is best-effort). */ export declare function assertNoPhaseCollision(repoRoot: string, target: number | null, opts: GuardOpts): Promise; //# sourceMappingURL=guard.d.ts.map