/** * Parses commands that carry data away for good * * Answers one question about a command's text: does it destroy the whole * container — a machine, a database, a volume, a disk, a set of jobs. The * contents inside a container are out of scope here: they get changed every * day, and a block on them would turn the marker into a habit. * * No server is needed here at all: the verdict is decided from the command's * name and its arguments. Paths and symlinks are the job of destructive-command.ts. */ /** DB clients: the query is only visible in their own argument or on stdin */ export declare const DB_CLIENTS: string[]; /** Verdict for one command */ export interface IrreversibleVerdict { blocked: boolean; /** Human-readable explanation: what exactly was stopped, and why */ reason?: string; } /** * Inspect a command from its text alone. * * A name is looked for in the command position: `reboot` as the first word * is an invocation, `reboot` inside a path or a quoted string is a mention, * and it is skipped. */ export declare function inspectIrreversible(command: string): IrreversibleVerdict;