/** * Command classification (IMP-950): decides how intrusive a shell command * is before anyone runs it. One table feeds BOTH arbitration layers: * - bridge-owned spawns (orchestrator runner) arbitrate in-process; * - PATH shims consult this via the arbiter's acquire endpoint. * * Philosophy: known-mutating commands are exclusive; known-read-only are * shared; long-lived dev servers take a shared hold for their lifetime so * an exclusive seeker can SEE them (and ping) without being blocked forever; * everything else passes through untouched - fail-open beats bricking. */ export type CommandClass = /** Excludes all other holders for its duration. */ 'exclusive' /** Coexists with other shared holders; blocked only by exclusive. */ | 'shared' /** Shared hold kept alive while the command runs (dev servers). */ | 'long-shared' /** No arbitration at all. */ | 'passthrough'; export interface Classification { cls: CommandClass; /** Human label used in lock files + pings ("npm install"). */ label: string; /** Machine-global resources also required (engine DLLs, package stores). */ global?: string[]; } /** * Classify a full command line. Never throws - unknown input is * passthrough. */ export declare function classifyCommand(commandLine: string): Classification;