/**
 * Shared @clack/prompts mock harness + tmpdir scaffolding for
 * chat_actions.test.ts + chat_actions_wab_sub.test.ts.
 *
 * Extracted in WAB-SUB.3 to keep both test files under the 450-LOC cap.
 * Each test file imports the mock setup + state object + helpers from
 * this module. Critical: this module installs `vi.mock('@clack/prompts')`
 * as a top-level side effect; importing it triggers the mock. Test files
 * must import this BEFORE the wizard module to ensure the mock wins.
 *
 * Why a `.ts` (not `.test.ts`): vitest treats `.test.ts` as a test file
 * and would try to run zero-test modules. This is shared infra, not a
 * spec.
 */
export interface PromptState {
    queue: unknown[];
    cancelMessages: string[];
    outroMessages: string[];
    introMessages: string[];
    notes: {
        msg?: string;
        title?: string;
    }[];
    /** When set, the next prompt returns the cancel symbol instead of consuming the queue. */
    injectCancelOnPrompt: number | null;
    /** Counter of prompts called (for injectCancelOnPrompt). */
    promptCount: number;
}
export declare const promptState: PromptState;
export interface WizardTestContext {
    homeDir: () => string;
    envPath: () => string;
}
export declare function setupChatWizardTest(): WizardTestContext;
export declare function queue(...values: unknown[]): void;
export declare function pathExists(p: string): Promise<boolean>;
//# sourceMappingURL=chat_actions_test_helpers.d.ts.map