import { type Component, type SettingsListTheme, type SelectItem, type SettingItem, Container, Input, SelectList, SettingsList } from "@earendil-works/pi-tui"; import type { Theme } from "@earendil-works/pi-coding-agent"; import { type ModelSource } from "./model-picker.js"; type SettingsSubmenu = (currentValue: string, done: (selectedValue?: string) => void) => Component; export declare const settingsListTheme: (theme: Theme) => SettingsListTheme; export declare const setting: (id: string, label: string, currentValue: string, rest?: { description?: string; values?: readonly string[]; submenu?: SettingsSubmenu; }) => SettingItem; export declare const numericSubmenu: (theme: Theme, values: readonly number[], format: (value: number) => string, title: string, description: string) => SettingsSubmenu; export declare const nonNegativeIntegerSubmenu: (theme: Theme, title: string, description: string) => SettingsSubmenu; export declare const stringInputSubmenu: (theme: Theme, title: string, description: string) => SettingsSubmenu; export declare const compactionThresholdSubmenu: (theme: Theme) => SettingsSubmenu; export declare const stringOptionsSubmenu: (theme: Theme, values: readonly string[], title: string, description: string) => SettingsSubmenu; export declare const listSubmenu: (theme: Theme, id: string, title: string, description: string, candidates: readonly string[], currentList: readonly string[], onCommit: (selected: string[]) => void) => SettingsSubmenu; export declare const markDrillIn: (items: SettingItem[]) => SettingItem[]; export declare const sectionSubmenu: (theme: Theme, title: string, description: string, items: SettingItem[], persist: (id: string, value: string) => void) => SettingsSubmenu; export declare class IntegerInputSubmenu extends Container { readonly input: Input; private readonly validationText; constructor(theme: Theme, title: string, description: string, currentValue: string, onSelect: (value: string) => void, onCancel: () => void); handleInput(data: string): void; render(width: number): string[]; submitRpc(value: string): void; } export declare class StringInputSubmenu extends Container { readonly input: Input; constructor(theme: Theme, title: string, description: string, currentValue: string, onSelect: (value: string) => void, onCancel: () => void); handleInput(data: string): void; render(width: number): string[]; submitRpc(value: string): void; } export declare class SelectSubmenu extends Container { readonly selectList: SelectList; readonly options: SelectItem[]; constructor(theme: Theme, title: string, description: string | undefined, options: SelectItem[], currentValue: string, onSelect: (value: string) => void, onCancel: () => void); handleInput(data: string): void; selectRpc(value: string): boolean; } export declare class CompactionThresholdSubmenu extends Container { private readonly theme; private readonly currentValue; private readonly done; selectList: SelectList | undefined; input: Input | undefined; private active; constructor(theme: Theme, currentValue: string, done: (selectedValue?: string) => void); private swap; private showSelect; private showPercent; private showTokens; handleInput(data: string): void; completeRpc(selectedValue: string): void; } export declare const thinkingSubmenu: (theme: Theme, overrides?: { title?: string; description?: string; inheritLabel?: string; }) => SettingsSubmenu; export declare const modelPickerSubmenu: (theme: Theme, source: ModelSource, options?: { headerText?: string; inheritLabel?: string; inheritName?: string; }) => SettingsSubmenu; export declare class SectionSubmenu extends Container { readonly settingsList: SettingsList; readonly items: SettingItem[]; readonly applyChange: (id: string, newValue: string) => void; constructor(theme: Theme, title: string, description: string | undefined, items: SettingItem[], onChange: (id: string, newValue: string) => void, onCancel: () => void, enableSearch?: boolean); handleInput(data: string): void; } export {}; //# sourceMappingURL=settings-submenus.d.ts.map