/** * @license * Copyright 2026 Alibaba Group Holding Limited * Copyright 2026 Qwen * SPDX-License-Identifier: Apache-2.0 * Adapted to TypeScript from qwen-omni-realtime-agent; modified for Qwen Live Harness. */ import type { DatabaseSync } from 'node:sqlite'; import type { MemoryConfig, MemoryConnection, MemoryLogger } from './config.js'; export { OBSERVER_PROMPT } from './prompts.js'; export type MemoryVisualSource = 'screen' | 'camera'; export interface MemoryVisualFrame { image: string; source: MemoryVisualSource; } export declare function cleanObservation(text: unknown, maxChars?: number, log?: MemoryLogger): string; export interface ObserverClientOptions { config: MemoryConfig['observer']; connection: MemoryConnection; log?: MemoryLogger; fetch?: typeof fetch; transport?: (prompt: string, frame: MemoryVisualFrame, signal?: AbortSignal) => Promise; } export declare class ObserverClient { private readonly options; private readonly connection; constructor(options: ObserverClientOptions); get available(): boolean; observe(frame: MemoryVisualFrame, signal?: AbortSignal): Promise; } export declare function recordObservation(database: DatabaseSync, content: string, sessionId: string, now?: Date, log?: MemoryLogger): number | undefined;