import React from "react"; import { ChatRuntime, ClientModel, DebugMessage, MessageOriginTypeFromEnum, SessionModel, TabKey, WidgetConvoModel } from "../Types/firebase"; import { TurnProps } from "../Components/Chat"; import type { VF_RUNTIME_MESSAGE } from "../Types/global_types"; export interface RuntimeInterface { agentPlatform?: "vf" | "vg" | undefined; bucket?: "voiceglow-eu" | "(default)"; region?: "eu" | "na"; userID?: string; loading?: boolean; chatHistory?: ChatMessage[]; lastResponse?: any; defaultMessageDelay?: number; variables?: ChatRuntime; reload?: boolean; notice?: { active?: boolean; message?: string; duration?: number; type?: "success" | "fail"; }; blockInput?: boolean; shouldSyncBrowser?: boolean; responseQ?: any; blockLoading?: boolean; blockProactive?: boolean; blockAll?: boolean; hasInitStats?: boolean; metadata?: { convo?: WidgetConvoModel; }; manualControl?: boolean; agentName?: string; lang?: string; showInstantly?: boolean; isSuperAdmin?: boolean; forceLoading?: boolean; showVapiUI?: boolean; callOngoing?: boolean; debugMessages?: DebugMessage[]; tabKey?: TabKey; sessions?: SessionModel[]; selectedSessionId?: string; orgUsers?: ClientModel[]; streamingLlm?: boolean; lastModified?: number; } export interface VFChatMessage { type: VF_RUNTIME_MESSAGE; payload: any; } export interface ChatMessage { mid?: string; from: string; type: VF_RUNTIME_MESSAGE; item?: T; delay?: number; action?: string; ts?: number; feedback?: boolean; VGPayload?: any; isLoading?: boolean; isAIGenerated?: boolean; mask?: { messageIndex?: number; turnIndex?: number; }; placeholderImage?: string; } export interface DataPayloadInterface { type: string; payload: any; } export declare function useRuntime(): RuntimeInteractionLayer; export interface RuntimeInteractionLayer { runtime: RuntimeInterface; setRuntime: React.Dispatch>; setLocalRuntime: any; handleNewResponse?: any; handlePushMessage?: any; pushChatNotice: (message: string, type: "success" | "fail", duration: number) => void; formattedTurnsValue?: TurnProps[]; setFormattedTurnsValue?: any; continueInteract?: any; isTest?: boolean; hasLoaded?: boolean; lightConvoData?: WidgetConvoModel; handlePushMessageNoInteract?: any; pushHumanTurnLocal?: any; confirmedBucket?: "voiceglow-eu" | "(default)"; handleRequestHandoffInit?: any; handleVGHandoffReject?: any; clearNoReplyTimeout?: any; handleActionMessages?: any; debugMessages?: any; handlePushMessageV2?: (input: { message: ChatMessage; interactPayload: any; vf_variables: any; }) => Promise; } export interface RuntimeProviderProps { variables?: ChatRuntime; isTest?: boolean; isChatHistory?: boolean; [key: string]: any; setRootRuntime?: React.Dispatch>; } export interface VG_CustomEvent_NewTurn { turns: TurnProps[]; newTurn: TurnProps; ts?: number; } export interface VG_CustomEvent_ChatToggle { chatOpened: boolean; ts?: number; } export interface VG_CustomEvent_ChatMessage extends ChatMessage { ts?: number; } export interface VGCustomEvent { event: "new_turn" | "new_message" | "chat_open" | "chat_close" | "chat_restart" | "handoff_cancel" | "handoff_accept" | "handoff_reject"; data: d; ts?: number; } export interface VG_CustomEvent { detail: VGCustomEvent; } export declare function handlePushMessageNoInteract({ agentID, userID, messages, bucket, action, origin, appendAtStart, safeAgentData, vf_variables, }: { agentID: string; userID: string; messages?: ChatMessage[]; bucket: "voiceglow-eu" | "(default)"; action?: any; origin?: MessageOriginTypeFromEnum; appendAtStart?: boolean; safeAgentData?: ChatRuntime; vf_variables?: object; }): Promise; export declare const RuntimeProvider: (props: RuntimeProviderProps) => React.JSX.Element; export default RuntimeProvider;