import type { PromptChoice, PromptClient, PromptConfirmOptions, PromptMultiselectOptions, PromptNumberOptions, PromptSelectOptions, PromptTextOptions } from './prompt.js'; /** A question a {@link PromptClient} was asked, as a test sees it. */ export interface PromptQuestion { kind: 'text' | 'number' | 'confirm' | 'select' | 'autocomplete' | 'autocompleteMultiselect'; message: string; choices?: Array>; /** What the question was seeded with — what the user sees to edit. */ initialValue?: unknown; initialValues?: unknown[] | undefined; } /** Scripted in place of an answer to dismiss that prompt. */ export declare const cancelPrompt: unique symbol; /** * A real {@link PromptClient} that answers from a script instead of a * terminal, and records every question it was asked. * * Each ask consumes the next scripted answer in turn. Scripting * {@link cancelPrompt} dismisses that prompt, and an exhausted script * dismisses every prompt after it, exactly as a user cancelling would. */ export declare class MemoryPromptClient implements PromptClient { /** Every question asked, in order — assert on what the user was offered. */ readonly questions: PromptQuestion[]; private readonly answers; constructor(script?: unknown[]); canPrompt: () => boolean; text: ({ message, initialValue, }: PromptTextOptions) => Promise; number: ({ message, initialValue, }: PromptNumberOptions) => Promise; confirm: ({ message, initialValue, }: PromptConfirmOptions) => Promise; select: ({ message, choices, initialValue, }: PromptSelectOptions) => Promise; autocomplete: ({ message, choices, initialValue, }: PromptSelectOptions) => Promise; autocompleteMultiselect: ({ message, choices, initialValues, }: PromptMultiselectOptions) => Promise; private answer; } export declare const createMemoryPrompt: (script?: unknown[]) => MemoryPromptClient;