@voxket-ai/voxket-live
Version:
A React widget for embedding Voxket-powered audio/video/chat experiences.
40 lines (39 loc) • 1.84 kB
TypeScript
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>>;
};