import type { AIInteractionEvent } from '@/components/organisms/ai/_shared/interaction-context';
import { type FormatMode, type FormatOptions } from '@/lib/ai-interaction-format';
/**
 * Options for the useInteractionHandler hook
 */
export interface UseInteractionHandlerOptions extends FormatOptions {
    /**
     * Callback invoked when an interaction occurs.
     * Receives both the raw event and the formatted message.
     */
    onInteraction: (event: AIInteractionEvent, formattedMessage: string | object) => void;
}
/**
 * Hook that creates a memoized interaction handler that automatically
 * formats interaction events for LLM consumption.
 *
 * @param options - Configuration options including the callback and format settings
 * @returns A stable callback function that handles interaction events
 *
 * @example
 * ```tsx
 * function MyComponent() {
 *   const handleInteraction = useInteractionHandler({
 *     onInteraction: (event, formatted) => {
 *       console.log('Event:', event);
 *       console.log('Formatted:', formatted);
 *       // Send formatted message to LLM
 *     },
 *     format: 'natural', // or 'structured', 'markdown'
 *   });
 *
 *   return (
 *     <AIInteractionProvider onInteraction={handleInteraction}>
 *       <MarkdownRenderer>{markdownContent}</MarkdownRenderer>
 *     </AIInteractionProvider>
 *   );
 * }
 * ```
 */
export declare function useInteractionHandler(options: UseInteractionHandlerOptions): (event: AIInteractionEvent) => void;
export type { FormatMode, FormatOptions };
