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<void>;
    /** Callback when sending is cancelled */
    onCancel?: () => Promise<void>;
    /** Initial value */
    initialValue?: string;
    /** Maximum length of input */
    maxLength?: number;
    /** Disabled state */
    disabled?: boolean;
    /** Chat status to determine input behavior */
    status?: ChatStatus;
};
/**
 * Hook return type for PromptInput state management
 */
export type UsePromptInputReturn = {
    /** Current input value */
    value: string;
    /** Set the input value */
    setValue: (value: string) => void;
    /** 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<HTMLTextAreaElement>) => void;
    /** Handle submit */
    handleSubmit: () => Promise<void>;
    /** 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;
