/** Private compatibility shapes pinned to node-llama-cpp 3.20.0. */ export interface SimulatorDisposable { dispose(): void | Promise; } export interface SimulatorGuard { createPreventDisposalHandle(): SimulatorDisposable; acquireDisposeLock(): Promise; } export interface SimulatorMemory { cpuRam: number; gpuVram: number; } export interface SimulatorModel { init(source?: unknown): Promise; getMemoryBreakdown(): SimulatorMemory; dispose(): Promise; } export interface SimulatorContext { init(): Promise; getMemoryBreakdown(): SimulatorMemory; dispose(): Promise; } export interface SimulatorBackend { gpu: string | false; supportsMmap: boolean; _memoryLock: object; _backendDisposeGuard: SimulatorGuard; _bindings: { AddonModel: new ( source: string, options: Record ) => SimulatorModel; AddonContext: new ( model: SimulatorModel, options: Record ) => SimulatorContext; }; onDispose: { createListener(callback: () => void | Promise): SimulatorDisposable; }; _createLogLevelOverride(level: string): () => void; _shouldLog(level: string): boolean; _log(level: string, message: string): void; } export interface SimulatorCache { get(key: string): T | undefined; set(key: string, value: T): unknown; delete(key: string): unknown; clear(): void; values(): IterableIterator; } export interface SimulatorDependencies { DisposeGuard: new (parents: SimulatorGuard[]) => SimulatorGuard; LruCache: new ( size: number, options?: { onDelete(key: string, value: T): Promise } ) => SimulatorCache; acquireLock(keys: unknown[]): Promise; needInitLock(gpu: string | false): boolean; addonInit: string; debug: string; error: string; f16: number; bytes(value: number): string; } export interface SimulatorModelOptions { modelSource: unknown; gpuLayers: number; useMmap?: boolean; } export interface SimulatorContextOptions extends SimulatorModelOptions { contextSize: number; batchSize: number; sequences: number; isEmbeddingContext?: boolean; flashAttention?: boolean | "auto"; swaFullCache?: boolean; kvCacheKeyType?: number; kvCacheValueType?: number; }