import type { ChatMessage } from '../../inference/pipelines/text/chat-format.js'; import type { GenerateOptions } from '../../generation/index.js'; import type { LogitsStepResult, PrefillResult } from '../../inference/pipelines/text/types.d.ts'; import type { DopplerLoadOptions, DopplerLoadProgress, DopplerModelSource, DopplerModelSourceResolution, DopplerPersistentCacheReceipt, } from './model-source.js'; import type { DopplerModelHandle } from './model-session.js'; import type { DopplerGenerationResult, DopplerPromptInput, DopplerScopedGenerateOptions, DopplerScopedModelSession, } from './scoped-session.js'; export type DopplerGenerateOptions = Omit; export interface DopplerChatResponse { content: string; usage: { promptTokens: number; completionTokens: number; totalTokens: number; }; } export interface DopplerNamespace { (prompt: string, options: DopplerCallOptions): AsyncGenerator; load(model: DopplerModelSource, options?: DopplerLoadOptions): Promise; open(model: DopplerModelSource, options?: DopplerLoadOptions): Promise; generate( model: DopplerModelSource, input: DopplerPromptInput, options?: DopplerLoadOptions & DopplerScopedGenerateOptions ): Promise; text(prompt: string, options: DopplerCallOptions): Promise; chat(messages: ChatMessage[], options: DopplerCallOptions): AsyncGenerator; chatText(messages: ChatMessage[], options: DopplerCallOptions): Promise; evict(model: DopplerModelSource): Promise; evictAll(): Promise; listModels(): Promise; listModelDetails(): Promise & { modelId: string }>>; listPersistentModels(): Promise & { modelId: string }>>; removePersistentModel(model: DopplerModelSource): Promise; } export interface DopplerCallOptions extends DopplerGenerateOptions { model: DopplerModelSource; onProgress?: (event: DopplerLoadProgress) => void; } export interface DopplerRuntimeService { doppler: DopplerNamespace; load(model: DopplerModelSource, options?: DopplerLoadOptions): Promise; open(model: DopplerModelSource, options?: DopplerLoadOptions): Promise; generate( model: DopplerModelSource, input: DopplerPromptInput, options?: DopplerLoadOptions & DopplerScopedGenerateOptions ): Promise; clearModelCache(): void; resolveLoadProgressHandlers(options?: DopplerLoadOptions): { userProgress: ((event: DopplerLoadProgress) => void) | null; pipelineProgress: ((event: DopplerLoadProgress) => void) | null; }; createDefaultNodeLoadProgressLogger(): (event: DopplerLoadProgress) => void; } export declare function createDopplerRuntimeService(options: { ensureWebGPUAvailable: () => Promise; defaultLoadProgressLogger?: ((event: DopplerLoadProgress) => void) | null; }): DopplerRuntimeService; export declare function resolvePersistentBrowserLoadSource( loadSource: DopplerModelSourceResolution, cache: false | 'opfs' | undefined, onProgress?: ((event: DopplerLoadProgress) => void) | null, cacheSource?: ( modelId: string, modelBaseUrl: string, onProgress: ((event: Record) => void) | null, options: { expectedManifestHash: string } ) => Promise<{ storageContext: Record; storageBackend: 'opfs'; cacheState: 'hit' | 'verified-hit' | 'manifest-refresh' | 'imported'; fromCache: boolean; manifestHash: string; totalBytes: number; }> ): Promise; export type { DopplerLoadOptions, DopplerLoadProgress, DopplerPersistentCacheReceipt, DopplerModelSource, DopplerModelSourceResolution, } from './model-source.js'; export type { DopplerModelHandle } from './model-session.js'; export type { DopplerGenerationEvent, DopplerGenerationResult, DopplerObservationPolicyId, DopplerObservationTier, DopplerPromptInput, DopplerScopedGenerateOptions, DopplerScopedModelSession, } from './scoped-session.js'; export type { PrefillResult, LogitsStepResult } from '../../inference/pipelines/text/types.d.ts'; export type { LoRAManifest, ExtensionBridgeClient } from './types.js';