import type { Command } from 'commander'; import type { CliResultV1 } from '@nexusclaw/shared'; import type { CliMatrixScenarioFixtureV1 } from './command-contract-matrix'; export interface CliMatrixControlledAdapter { readonly adapterId: string; setup(): Promise | void; teardown(): Promise | void; remoteMutationCount(): number; } export interface CliMatrixExecutionOptions { readonly fixture: CliMatrixScenarioFixtureV1; readonly adapter: CliMatrixControlledAdapter; readonly programFactory: () => Command; readonly sideEffectRoot?: string; readonly requireNoPersistentSideEffects?: boolean; } export interface CliMatrixExecutionEvidence { readonly exitCode: number; readonly stdout: string; readonly stderr: string; readonly result: CliResultV1; readonly localBefore: ReadonlyArray; readonly localAfter: ReadonlyArray; readonly remoteMutationsBefore: number; readonly remoteMutationsAfter: number; } export declare function buildControlledTerminalProgram(programFactory: () => Command, commandId: string, kind: 'success' | 'empty'): Command; export declare function executeCliMatrixScenario(options: CliMatrixExecutionOptions): Promise;