import type { PolypotConfig, PolypotConfigInput } from "../config/schema.js"; import type { PolypotSecrets } from "../config/secrets.js"; import { type PromptAdapter } from "../prompts/common.js"; export interface InitAnswers { readonly openaiApiKey?: string; readonly sourceLanguage: string; readonly targetLanguages: readonly string[]; readonly potFilePath?: string; readonly outputDir?: string; readonly promptFilePath: string; } export type InitPromptAdapter = PromptAdapter; export declare const DEFAULT_PROJECT_PROMPT_FILE_PATH = ".polypot/prompt.md"; /** * Set or clear the prompt adapter used by tests. * * @param adapter Prompt adapter to use. */ export declare function setInitPromptAdapterForTests(adapter: InitPromptAdapter | undefined): void; /** * Build config for init defaults. * * @param existingConfig Config values already stored. * @param answers Answers collected from init prompts. * @returns Updated Polypot config input. */ export declare function buildInitConfig(existingConfig: PolypotConfigInput, answers: InitAnswers): PolypotConfigInput; /** * Collect default init answers without prompting. * * @param existingConfig Config values already stored. * @returns Init answers from defaults. */ export declare function defaultInitAnswers(existingConfig: PolypotConfig): InitAnswers; /** * Collect init answers from the prompt adapter. * * @param existingConfig Config values already stored. * @param existingSecrets Secrets already stored. * @param adapter Prompt adapter to use. * @returns Collected init answers. */ export declare function collectInitAnswers(existingConfig: PolypotConfig, existingSecrets: PolypotSecrets, adapter?: InitPromptAdapter): Promise; /** * Ask whether existing init files can be changed. * * @param adapter Prompt adapter to use. * @returns True when project init files may be changed. */ export declare function confirmInitUpdate(adapter?: InitPromptAdapter): Promise;