UNPKG

ant-design-x-vue-next

Version:

Ant Design X for Vue — community continuation aligned with @ant-design/x

74 lines (73 loc) 3.36 kB
import type { AnyObject } from '../_util/type'; import type { SSEOutput, XStreamOptions } from '../x-stream'; import type { XFetchMiddlewares, XFetchOptions } from './x-fetch'; type SimpleType = string | number | boolean | object; /** * SDK-style callbacks (aligned with @ant-design/x-sdk). * Headers are optional for backward-friendly hosts. */ export interface ManualXRequestCallbacks<Output, ChatMessage extends SimpleType = any> { onSuccess: (chunks: Output[], responseHeaders: Headers, chatMessage?: any) => void; onError: (error: Error, errorInfo?: any, responseHeaders?: Headers, fallbackMsg?: any) => void | number; onUpdate?: (chunk: Output, responseHeaders: Headers, chatMessage?: any) => void; } export interface ManualXRequestOptions<Input = AnyObject, Output = SSEOutput, ChatMessage extends SimpleType = any> { callbacks?: ManualXRequestCallbacks<Output, ChatMessage>; params?: Partial<Input>; headers?: Record<string, string>; timeout?: number; streamTimeout?: number; fetch?: XFetchOptions['fetch']; middlewares?: XFetchMiddlewares; transformStream?: XStreamOptions<Output>['transformStream']; streamSeparator?: string; partSeparator?: string; kvSeparator?: string; /** Must be true for provider-owned requests */ manual?: boolean; retryInterval?: number; retryTimes?: number; model?: string; dangerouslyApiKey?: string; } export declare abstract class AbstractXRequestClass<Input = AnyObject, Output = SSEOutput, ChatMessage extends SimpleType = any> { baseURL: string; options: ManualXRequestOptions<Input, Output, ChatMessage>; constructor(baseURL: string, options?: ManualXRequestOptions<Input, Output, ChatMessage>); abstract get asyncHandler(): Promise<any>; abstract get isTimeout(): boolean; abstract get isStreamTimeout(): boolean; abstract get isRequesting(): boolean; abstract get manual(): boolean; abstract run(params?: Input): boolean; abstract abort(): void; } /** * Manual XRequest instance for AbstractChatProvider (aligned with @ant-design/x-sdk XRequest(baseURL, { manual: true })). * Reuses the legacy Vue XRequest.create engine under the hood. */ export declare class ManualXRequestClass<Input = AnyObject, Output = SSEOutput, ChatMessage extends SimpleType = any> extends AbstractXRequestClass<Input, Output, ChatMessage> { private _asyncHandler; private _manual; private lastHeaders; private legacy; constructor(baseURL: string, options?: ManualXRequestOptions<Input, Output, ChatMessage>); get asyncHandler(): Promise<any>; get isTimeout(): boolean; get isStreamTimeout(): boolean; get isRequesting(): boolean; get manual(): boolean; run(params?: Input): boolean; abort(): void; } /** * Create a manual SDK-style XRequest (use with AbstractChatProvider). * * @example * ```ts * const request = createManualXRequest('/api/chat', { manual: true, params: { model: 'gpt-4o-mini' } }); * const provider = new OpenAIChatProvider({ request }); * ``` */ export declare function createManualXRequest<Input = AnyObject, Output = SSEOutput, ChatMessage extends SimpleType = any>(baseURL: string, options?: ManualXRequestOptions<Input, Output, ChatMessage>): AbstractXRequestClass<Input, Output, ChatMessage>; export default createManualXRequest;