/** * Strict argument parsing for the hosting commands (GUIDELINES §3): built on `node:util` * parseArgs with `strict: true`, so an unknown or typo'd flag (`--dry-runn`) is a named ERROR — * never silently ignored into a real deploy. `--ci`, `--no-input` (the clig-standard name), and * `--yes` are aliases for the same non-interactive mode. */ export type HostingArgs = { ok: true; explicitPath?: string; ci: boolean; dryRun: boolean; /** One machine-readable envelope on stdout (the --json convention); chatter stays on stderr. */ json: boolean; help: boolean; } | { ok: false; error: string; }; export type LoginArgs = { ok: true; withToken: boolean; device: boolean; json: boolean; help: boolean; } | { ok: false; error: string; }; export declare function parseLoginArgs(argv: string[]): LoginArgs; export declare function parseHostingArgs(argv: string[]): HostingArgs; export type PublishArgs = { ok: true; explicitPath?: string; ci: boolean; draft: boolean; /** §5c: in --ci, the explicit consent to park the listing and auto-activate on DEPLOYED. */ activateOnApproval: boolean; /** 1:N disambiguation (2026-08-28): force-create an offer alongside the existing ones. */ newListing: boolean; /** 1:N disambiguation: the exact listing id to update. */ listingId?: string; /** D4 consent to public ERC-8004 registration, by flag (agent-registry LLD 2.4): * true = grant, false = decline, undefined = prompt (interactive) / skip (--ci). */ publicIdentity?: boolean; /** One machine-readable envelope on stdout (the --json convention). */ json: boolean; help: boolean; } | { ok: false; error: string; }; export declare function parsePublishArgs(argv: string[]): PublishArgs; export type LifecycleArgs = { ok: true; explicitPath?: string; message?: string; help: boolean; json: boolean; findings: boolean; /** `--input key=value`, repeatable — the declared-field answers for the test envelope. */ inputs: string[]; /** `--agent ` — test a specific agent instead of the workspace's. */ agentId?: string; } | { ok: false; error: string; }; /** `clustly status/logs/test` — positionals + help + `--json` (one machine-readable object on * stdout: most builders drive this CLI with their own AI agents, design 2026-08-24 §7½.1). * `--findings` is logs-only (`withFindings`) — accepting it elsewhere and ignoring it would be * the silent-default this parser exists to refuse. * * `withMessage` is uniquely `clustly test`, so it also gates that command's two flags: * `--input key=value` (repeatable — the declared-field answers) and `--agent ` (test an * agent other than the workspace's). Same reasoning as `--findings`: `status --input` must be a * named error, not an ignored flag. */ export declare function parseLifecycleArgs(argv: string[], withMessage: boolean, withFindings?: boolean): LifecycleArgs; export type DestroyArgs = { ok: true; explicitPath?: string; /** The ONE flag that consents to the teardown. */ yes: boolean; /** Non-interactive (`--ci` / `--no-input`): never prompt. Without `--yes` that is a * refusal, not consent — `--ci` used to imply `--yes` here alone among the commands, * so an agent passing `--ci` everywhere tore an agent down without ever saying yes * (staging 2026-09-06). */ ci: boolean; help: boolean; } | { ok: false; error: string; }; /** `clustly destroy [path] [--yes]` — `--yes` skips the typed confirmation (CI/scripted). */ export declare function parseDestroyArgs(argv: string[]): DestroyArgs;