import type { AIInteractionEvent } from '../components/organisms/ai/_shared/interaction-context.js'; import { type FormatMode, type FormatOptions } from '../lib/ai-interaction-format.js'; /** * 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 ( * * {markdownContent} * * ); * } * ``` */ export declare function useInteractionHandler(options: UseInteractionHandlerOptions): (event: AIInteractionEvent) => void; export type { FormatMode, FormatOptions };