import type { CliExitCode, CliResultV1 } from '@nexusclaw/shared'; export interface CliOutputStream { write(chunk: string | Uint8Array): boolean; } export interface CliOutputCoordinatorOptions { readonly command: string; readonly machine: boolean; readonly stdout?: CliOutputStream; readonly stderr?: CliOutputStream; readonly setExitCode?: (exitCode: CliExitCode) => void; readonly renderResult?: (result: CliResultV1) => string; } export declare function isMachineOutputArgv(argv: ReadonlyArray): boolean; export declare class CliOutputCoordinator { readonly command: string; readonly machine: boolean; private readonly stdout; private readonly stderr; private readonly setExitCode; private readonly renderResult; private terminalEmitted; constructor(options: CliOutputCoordinatorOptions); hasEmittedTerminalResult(): boolean; writeHumanStdout(message: string): void; writeHumanStderr(message: string): void; emitMachineResult(result: CliResultV1): void; private assertHumanOutputAllowed; } export declare function runWithCliOutputCoordinator(coordinator: CliOutputCoordinator, operation: () => T): T; export declare function currentCliOutputCoordinator(): CliOutputCoordinator | undefined; export declare function requireCliOutputCoordinator(): CliOutputCoordinator;