UNPKG

@react-native-ai/mlc

Version:
96 lines 2.83 kB
import type { TurboModule } from 'react-native'; import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes'; export interface ModelConfig { model_id?: string; } type MessageRole = 'assistant' | 'system' | 'tool' | 'user'; export interface Message { role: MessageRole; content: string; } export interface CompletionUsageExtra { ttft_s: number; prefill_tokens_per_s: number; prompt_tokens: number; jump_forward_tokens: number; completion_tokens: number; end_to_end_latency_s: number; prefill_tokens: number; inter_token_latency_s: number; decode_tokens_per_s: number; decode_tokens: number; } export interface CompletionUsage { prompt_tokens: number; completion_tokens: number; total_tokens: number; extra: CompletionUsageExtra; } export interface GeneratedMessage { role: MessageRole; content: string; tool_calls: ChatToolCall[]; finish_reason: 'stop' | 'length' | 'tool_calls'; usage: CompletionUsage; } export interface ResponseFormat { type: 'json_object' | 'text'; schema?: string; } export interface ChatFunctionCall { name: string; arguments?: Record<string, string>; } export interface ChatToolCall { id: string; type: string; function: ChatFunctionCall; } export interface ChatFunctionTool { name: string; description?: string; parameters: Record<string, string>; } export interface ChatTool { type: 'function'; function: ChatFunctionTool; } export interface GenerationOptions { temperature?: number; maxTokens?: number; topP?: number; topK?: number; responseFormat?: ResponseFormat; tools?: ChatTool[]; toolChoice?: 'none' | 'auto'; } export interface DownloadProgress { percentage: number; } export interface ChatUpdateEvent { delta: { content: string; role: MessageRole; }; } export interface ChatCompleteEvent { usage: CompletionUsage; finish_reason: 'stop' | 'length' | 'tool_calls'; } export interface Spec extends TurboModule { getModel(name: string): Promise<ModelConfig>; getModels(): Promise<ModelConfig[]>; generateText(messages: Message[], options?: GenerationOptions): Promise<GeneratedMessage>; streamText(messages: Message[], options?: GenerationOptions): Promise<string>; cancelStream(streamId: string): Promise<void>; downloadModel(modelId: string): Promise<void>; removeModel(modelId: string): Promise<void>; prepareModel(modelId: string): Promise<void>; unloadModel(): Promise<void>; onChatUpdate: EventEmitter<ChatUpdateEvent>; onChatComplete: EventEmitter<ChatCompleteEvent>; onDownloadProgress: EventEmitter<DownloadProgress>; } declare const _default: Spec; export default _default; //# sourceMappingURL=NativeMLCEngine.d.ts.map