import type { XAiContextType } from "../context/AiProviderContext"; import type { SendContent } from "../types"; export interface UseProviderContextOptions { props: T; providerProps?: (keyof XAiContextType)[]; mergeLogic?: (props: T, context: XAiContextType | undefined) => T; } export interface UseProviderContextReturn { mergedProps: T; isInProvider: boolean; context: XAiContextType | undefined; getProviderValue: (key: K) => XAiContextType[K] | undefined; } export type MethodCaller = (...args: T) => R; export interface ProviderMethods { isInProvider: boolean; sendMessage: MethodCaller<[SendContent], void>; stopGeneration: MethodCaller<[], void>; clearMessages: MethodCaller<[], void>; regenerateLastMessage: MethodCaller<[string], void>; } /** * 通用的 Provider 上下文 Hook * 用于判断组件是否在 XAiProvider 中,并合并相关属性 */ export declare const useProviderContext: >(options: UseProviderContextOptions) => UseProviderContextReturn; /** * 专门为 XAiChatbot 设计的 Hook */ export declare const useChatbotContext: (componentProps: any) => UseProviderContextReturn; /** * 通用的 Provider 方法调用 Hook */ export declare const useProviderMethods: () => ProviderMethods;