import type React from 'react'; import type { ThemeName, ThemePickerOption } from '../theme.js'; export interface ThemePickerProps { options: readonly ThemePickerOption[]; selected: number; activeId: ThemeName; hint?: string | undefined; /** * Available column width for the whole picker (the main column width the * picker is mounted into). Below {@link SPLIT_MIN_COLUMNS} the picker * renders the list full-width without the preview pane — a narrow * terminal (or a wide sidebar) must never squeeze list rows into * truncated garbage just to show a preview. */ columns?: number | undefined; /** * Measured vertical budget for the whole picker box (terminal rows minus * status bar, input, and margins — see app-view.tsx). When provided the * window math uses it instead of the `rows - shellReservedRows` guess, * which is what keeps the picker inside a 24-row terminal even when the * input bar or status bar grows. The preview pane is skipped when this * budget is too small for it to be useful. */ maxRows?: number | undefined; } /** * Interactive theme picker. Mirrors the autonomy-picker visual pattern * (bordered box, ↑/↓ navigate, Enter apply, Esc cancel) so the two * pickers look and feel consistent. The currently active preset is * highlighted with a `[active]` marker so the user can see whether * their selection will actually change anything. * * The list is windowed via {@link useWindowedPicker} so 15+ presets stay * usable on small terminals — a top-aligned `…` marker appears when the * focused row is below the start of the visible window. * * On wide terminals the picker splits into two panes: the windowed list on * the left and a live {@link ThemePreview} on the right that renders the * *focused* preset's palette from its frozen snapshot. Navigating with ↑/↓ * re-renders the preview; Enter alone applies the theme. The description * column is dropped from list rows in split mode — it moves into the * preview header, which is what frees the list to show more rows. */ export declare function ThemePicker({ options, selected, activeId, hint, columns, maxRows, }: ThemePickerProps): React.ReactElement; //# sourceMappingURL=theme-picker.d.ts.map