import type { TerminalCompositor } from '../terminal-compositor.js'; import { type ConfigKeySpec } from '../../config/settable-keys.js'; import { type ConfigProvenance } from '../config/provenance.js'; import { type ProvenanceCache } from '../config/provenance-cache.js'; import { type LiveApplyHandle, type LiveApplyOutcome } from '../config/live-apply.js'; export interface MenuOverlays { pick(header: readonly string[], options: readonly string[]): Promise; editText(header: readonly string[], initial: string, help: string, validate: (v: string) => string | null): Promise; emit(line: string): void; } export interface MenuIo { specs(): readonly ConfigKeySpec[]; current(path: string): unknown; write(path: string, rawValue: string, allowHuman: boolean): string; provenance?(path: string, cache?: ProvenanceCache): ConfigProvenance; applyLive?(path: string, rawValue: string): Promise; } export declare function runConfigMenu(ov: MenuOverlays, io: MenuIo): Promise; export declare function overlaysFromCompositor(c: TerminalCompositor): MenuOverlays; export declare function defaultIo(handle?: LiveApplyHandle): MenuIo;