import { ChatStatus, TSubmitData } from "../../../types/index.js"; /** * Hook props for managing PromptInput state */ export type UsePromptInputProps = { /** Callback when message is sent */ onSend: (data: TSubmitData) => Promise; /** Callback when sending is cancelled */ onCancel?: () => Promise; /** Initial value */ initialValue?: string; /** Maximum length of input */ maxLength?: number; /** Disabled state */ disabled?: boolean; /** Chat status to determine input behavior */ status?: ChatStatus; /** Called whenever the hook changes its internal value. */ onValueChange?: (value: string) => void; }; /** * Hook return type for PromptInput state management */ export type UsePromptInputReturn = { /** Current input value */ value: string; /** Can submit the form */ canSubmit: boolean; /** Submit button state */ submitButtonState: 'enabled' | 'disabled' | 'loading' | 'cancelable'; /** Is input disabled (when loading) */ isInputDisabled: boolean; /** Handle input change */ handleChange: (value: string) => void; /** Handle key down */ handleKeyDown: (event: React.KeyboardEvent) => void; /** Handle submit */ handleSubmit: () => Promise; /** Attachments */ attachments: File[]; /** Set attachments */ setAttachments: (files: File[]) => void; }; /** * Custom hook for managing PromptInput state and behavior * * @param props - Hook props * @returns Hook return value with state and handlers */ export declare function usePromptInput(props: UsePromptInputProps): UsePromptInputReturn;