import React from 'react';
import type { ChatAttachmentUpload } from '../../../hooks/useChatAgent';
import type { ChatInputSelectedSlashCommand } from '../components/ChatInput';
import type { SlashCommandResolution } from './useSlashCommands';
import type { PendingAttachment } from './useAttachmentManager';
export interface UseChatInputStateOptions {
    onSendMessage: (payload: {
        content: string;
        attachments: ChatAttachmentUpload[];
        slashCommand?: SlashCommandResolution['payload'];
    }) => Promise<void>;
    isAttachmentCallbackPending: boolean;
    isProviderComingSoon: boolean;
    activeSlashCommand: ChatInputSelectedSlashCommand | null;
    setActiveSlashCommand: (command: ChatInputSelectedSlashCommand | null) => void;
    createUploads: (attachments: ReadonlyArray<{
        id: string;
        file: File;
        dataUrl?: string;
        sourceUrl?: string;
    }>) => Promise<ChatAttachmentUpload[]>;
    clearAttachments: () => void;
    restoreAttachments: (attachments: ReadonlyArray<{
        id: string;
        file: File;
        dataUrl?: string;
        sourceUrl?: string;
    }>) => void;
    resolveSlashCommand: (selection: ChatInputSelectedSlashCommand | null) => Promise<SlashCommandResolution>;
    pendingAttachments: PendingAttachment[];
}
export interface UseChatInputStateResult {
    inputValue: string;
    setInputValue: React.Dispatch<React.SetStateAction<string>>;
    inputHistory: string[];
    setInputHistory: React.Dispatch<React.SetStateAction<string[]>>;
    isSendingMessage: boolean;
    setIsSendingMessage: React.Dispatch<React.SetStateAction<boolean>>;
    handleSubmit: (event: React.FormEvent<HTMLFormElement>) => Promise<void>;
    resetStateAfterNewSession: () => void;
}
export declare const useChatInputState: ({ onSendMessage, isAttachmentCallbackPending, isProviderComingSoon, activeSlashCommand, setActiveSlashCommand, createUploads, clearAttachments, restoreAttachments, resolveSlashCommand, pendingAttachments }: UseChatInputStateOptions) => UseChatInputStateResult;
//# sourceMappingURL=useChatInputState.d.ts.map