import type { SSEOutput, XStreamOptions } from '../x-stream'; import type { AnyObject } from '../_util/type'; import { type MaybeRefOrGetter } from 'vue'; interface RequestFnInfo extends AnyObject { messages?: Message[]; message?: Message; } export type RequestFn = (info: Input, callbacks: { onUpdate: (chunk: Output) => void; onSuccess: (chunk: Output[]) => void; onError: (error: Error) => void; onStream?: (abortController: AbortController) => void; }, transformStream?: XStreamOptions['transformStream']) => void; export interface XAgentConfigPreset { baseURL: string; key: string; model: string; dangerouslyApiKey: string; } export interface XAgentConfigCustom { request?: RequestFn; } export type XAgentConfig = Partial & XAgentConfigCustom; /** This is a wrap class to avoid developer can get too much on origin object */ export declare class XAgent, Output = SSEOutput> { config: XAgentConfig; private requestingMap; constructor(config: XAgentConfig); private finishRequest; request: RequestFn; isRequesting(): boolean; } export default function useXAgent, Output = SSEOutput>(config: MaybeRefOrGetter>): import("vue").ComputedRef>[]; export {};