export interface ConfigImportDeps { alias: string; knownSites: Record; user: string; password: string; cliName: string; verify: (url: string, user: string, password: string) => Promise<{ ok: boolean; reason?: string }>; save: (...args: unknown[]) => Promise; saveOpts: Record; } export interface ConfigImportResult { saved: boolean; verified: boolean; verifyReason?: string; } export async function configImportAction(deps: ConfigImportDeps): Promise { const site = deps.knownSites[deps.alias]; if (!site) throw new Error(`Unknown site '${deps.alias}'.`); const verifyResult = await deps.verify(site.url, deps.user, deps.password); await deps.save(deps.cliName, deps.alias, { url: site.url, user: deps.user, password: deps.password, }, true, deps.saveOpts); return { saved: true, verified: verifyResult.ok, verifyReason: verifyResult.ok ? undefined : verifyResult.reason, }; }