import React from 'react';
import type { PromptDefinition, PromptInstance } from 'react-mcp-hook';
export interface ChatInputAttachment {
    id: string;
    name: string;
    size: number;
    type: string;
    dataUrl?: string;
    sourceUrl?: string;
}
export interface ChatInputSlashCommandOption {
    id: string;
    title: string;
    description?: string;
    serverName?: string;
    serverId: string;
    prompt: PromptDefinition;
    resolvePrompt?: (args: Record<string, string>) => Promise<PromptInstance | undefined> | PromptInstance | undefined;
}
export interface ChatInputSelectedSlashCommand {
    option: ChatInputSlashCommandOption;
    args: Record<string, string>;
}
export interface ChatInputProps {
    inputValue: string;
    inputHistory?: string[];
    placeholder: string;
    isInputDisabled: boolean;
    isStreaming: boolean;
    isSubmissionDisabled?: boolean;
    isSending?: boolean;
    isCancelling?: boolean;
    canCancel?: boolean;
    onCancelSend?: () => void;
    onInputChange: (value: string) => void;
    attachments: ChatInputAttachment[];
    onAttachmentsAdd: (files: File[]) => void;
    onAttachmentRemove: (attachmentId: string) => void;
    slashCommandOptions?: ChatInputSlashCommandOption[];
    onSlashCommandSelect?: (option: ChatInputSlashCommandOption) => boolean | void;
    activeSlashCommand?: ChatInputSelectedSlashCommand | null;
    onSlashCommandStateChange?: (state: ChatInputSelectedSlashCommand | null) => void;
}
export declare const ChatInput: React.FC<ChatInputProps>;
//# sourceMappingURL=ChatInput.d.ts.map