UNPKG

@voxket-ai/voxket-live

Version:

A React widget for embedding Voxket-powered audio/video/chat experiences.

40 lines (39 loc) 1.84 kB
import { VoxketClient } from '../core/client'; import { ChatMessage } from '../types/core'; import { InteractiveUIState } from '../types/rpc'; import { ToolExecutionData } from '../types/tools'; import * as React from 'react'; export type { ToolExecutionData }; export declare function useChatMessages(client: VoxketClient): { messages: ChatMessage[]; setMessages: React.Dispatch<React.SetStateAction<ChatMessage[]>>; isLoading: boolean; setIsLoading: React.Dispatch<React.SetStateAction<boolean>>; streamingMessages: Set<string>; setStreamingMessages: React.Dispatch<React.SetStateAction<Set<string>>>; pendingMessages: ChatMessage[]; setPendingMessages: React.Dispatch<React.SetStateAction<ChatMessage[]>>; }; export declare function useAgentState(client: VoxketClient): { agentState: "idle" | "thinking" | "speaking" | "tool_execution"; setAgentState: React.Dispatch<React.SetStateAction<"idle" | "thinking" | "speaking" | "tool_execution">>; toolExecutions: ToolExecutionData[]; setToolExecutions: React.Dispatch<React.SetStateAction<ToolExecutionData[]>>; }; export declare function useInteractionState(client: VoxketClient): { currentInteraction: InteractiveUIState | null; setCurrentInteraction: React.Dispatch<React.SetStateAction<InteractiveUIState | null>>; }; export declare function useScrollBehavior(): { messagesContainerRef: React.RefObject<HTMLDivElement>; shouldAutoScroll: boolean; setShouldAutoScroll: React.Dispatch<React.SetStateAction<boolean>>; scrollToBottom: (immediate?: boolean) => void; smartScrollToBottom: (immediate?: boolean) => void; handleScroll: () => void; }; export declare function useMobileDetection(): { isMobile: boolean; isFullscreen: boolean; setIsFullscreen: React.Dispatch<React.SetStateAction<boolean>>; };