import type { EventSubscription } from 'expo-modules-core'; import { BuiltInModel, DownloadableModelStatus, LLMMessage, LLMResponse, LLMStreamEvent, ModelDownloadProgressEvent, ModelStateChangeEvent } from './types'; export type ExpoAiKitModuleEvents = { onStreamToken: (event: LLMStreamEvent) => void; onDownloadProgress: (event: ModelDownloadProgressEvent) => void; onModelStateChange: (event: ModelStateChangeEvent) => void; }; /** Generation parameters passed to native. All fields optional; -1 / absent means "unset". */ export type NativeGenerationConfig = { temperature?: number; topK?: number; topP?: number; seed?: number; maxTokens?: number; }; export interface ExpoAiKitNativeModule { isAvailable(): boolean; sendMessage(messages: LLMMessage[], systemPrompt: string, sessionId: string): Promise; startStreaming(messages: LLMMessage[], systemPrompt: string, sessionId: string): Promise; stopStreaming(sessionId: string): Promise; embed(texts: string[]): Promise<{ embeddings: number[][]; dimensions: number; }>; getBuiltInModels(): BuiltInModel[]; getDownloadableModelStatus(modelId: string): Promise; getDeviceRamBytes(): number; setModel(modelId: string, minRamBytes: number, backend: string, generation: NativeGenerationConfig): Promise; getActiveModel(): string; unloadModel(): Promise; downloadModel(modelId: string, url: string, sha256: string): Promise; cancelDownload(modelId: string): Promise; deleteModel(modelId: string): Promise; addListener(eventName: K, listener: ExpoAiKitModuleEvents[K]): EventSubscription; } declare const ExpoAiKitModule: ExpoAiKitNativeModule; export default ExpoAiKitModule; //# sourceMappingURL=ExpoAiKitModule.d.ts.map