import { type PromptView } from "./render.js"; export type PromptSubmission = { text: string; attachments: string[]; }; export type SlashCommandMenuProps = { itemCount: number; highlightIndex: number; /** Name of the highlighted command (e.g. `model`). Used so Enter completes partial `/` instead of submitting. */ highlightedCommandName: string; onHighlightChange: (index: number) => void; completeSelected: () => void; }; type Args = { value: string; onChange: (value: string) => void; onSubmit: (value: PromptSubmission) => void; focus: boolean; maxVisibleLines: number; /** When set and `itemCount > 0`, ↑/↓ cycle selection; Tab completes; Enter completes if the typed token still mismatches the highlight, otherwise submits. */ slashMenu?: SlashCommandMenuProps | undefined; }; type Result = { view: PromptView; }; export declare function usePromptInputController({ value, onChange, onSubmit, focus, maxVisibleLines, slashMenu, }: Args): Result; export {};