import type { PolypotSecrets } from "../config/secrets.js"; import type { SetupLanguageChoice } from "../setup/languages.js"; export interface PromptAdapter { readonly checkbox: (options: { readonly choices: readonly SetupLanguageChoice[]; readonly message: string; readonly pageSize?: number; readonly required?: boolean; }) => Promise; readonly confirm: (options: { readonly default?: boolean; readonly message: string; }) => Promise; readonly input: (options: { readonly default?: string; readonly message: string; readonly validate?: (value: string) => boolean | string; }) => Promise; readonly password: (options: { readonly message: string; readonly validate?: (value: string) => boolean | string; }) => Promise; readonly select: (options: { readonly choices: readonly SetupLanguageChoice[]; readonly default?: string; readonly message: string; readonly pageSize?: number; }) => Promise; } export declare function setPromptAdapterForTests(key: symbol, adapter: PromptAdapter | undefined): void; export declare function currentPromptAdapter(key: symbol): PromptAdapter; export declare function messageWithDefault(message: string, value: string): string; export declare function promptOpenAIApiKey(existingSecrets: PolypotSecrets, adapter: PromptAdapter, options: { readonly keepExistingMessage: string; readonly storeNewDefault: boolean; readonly storeNewMessage: string; readonly promptMessage: string; }): Promise;