import { type FormState } from "../../eval/newTest/form.js"; import { type FormTerminal, type OpenEditor } from "./formTerminal.js"; export type { FormTerminal, OpenEditor } from "./formTerminal.js"; export type EvalNewOptions = { suiteDir: string; /** Called once the suite directory has passed its check, so a wrong path * is reported before the terminal is touched or refused. */ openTerminal: () => FormTerminal; /** Prints a line once the screen is gone: the folder written and the * commands to run next. They stay in the terminal's scrollback, which a * screen that any key dismisses could not promise. */ print: (text: string) => void; }; /** Refuse anything the loader would not read as a directory of test folders: * a file, a folder that is itself one test, or the file form of a suite. */ export declare function assertSuiteDirectory(suiteDir: string): void; /** The hints the form footer shows, from the same table that handles the keys. */ export declare function formHints(state: FormState, openEditor: OpenEditor): string; export declare function evalNew(options: EvalNewOptions): Promise; /** The screen loop both commands share: draw the form, handle keys until * it is done, then print the folder written and the commands to run next. */ export declare function runForm(args: { initial: FormState; openTerminal: () => FormTerminal; print: (text: string) => void; }): Promise; /** The command as the CLI runs it. */ export declare function runEvalNew(suiteDir: string): Promise;