/** * @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 NarrationPreferences, type ProactiveMonitorMode } from './monitor-protocol.js'; export type ProactiveTaskStatus = 'provisioning' | 'running' | 'delivering' | 'completed' | 'cancelled' | 'failed'; export type ProactiveTaskType = 'perception_monitor' | 'time_reminder'; export type ProactiveModality = 'vision' | 'audio'; interface ProactiveTaskBase { taskId: string; title: string; taskType: ProactiveTaskType; status: ProactiveTaskStatus; monitorMode: ProactiveMonitorMode; repeat: boolean; generation: number; createdAt: number; updatedAt: number; triggerCount: number; failureCount: number; lastSummary?: string; error?: string; pendingDeliveryCount?: number; } export interface PerceptionTask extends ProactiveTaskBase { taskType: 'perception_monitor'; modalities: ProactiveModality[]; taskDescription: string; interventionText: string; narrationPreferences?: NarrationPreferences; } export interface TimerTask extends ProactiveTaskBase { taskType: 'time_reminder'; monitorMode: 'event'; repeat: false; durationSec: number; reminderText: string; remainingSec?: number; } export type ProactiveTask = PerceptionTask | TimerTask; export interface CreateMonitorInput { title: unknown; modalities: unknown; condition: unknown; triggerResponse: unknown; repeat: unknown; } export interface CreateNarrationInput { title: unknown; modalities: unknown; narrationFocus: unknown; narrationStyle?: unknown; narrationPreferences?: NarrationPreferences; } export interface CreateTimerInput { title: unknown; durationSec: unknown; reminderText: unknown; } export interface TaskSelector { targetTitle?: unknown; targetTitleContains?: unknown; all?: unknown; } export interface UpdateTaskInput extends TaskSelector { title?: unknown; modalities?: unknown; condition?: unknown; triggerResponse?: unknown; narrationFocus?: unknown; narrationStyle?: unknown; repeat?: unknown; durationSec?: unknown; reminderText?: unknown; } export declare class ProactiveTaskManager { private readonly onChange?; private readonly tasks; constructor(_legacyMaxConcurrentPerceptionTasks?: number, onChange?: ((task: ProactiveTask) => void) | undefined); createMonitor(input: CreateMonitorInput): PerceptionTask; createNarration(input: CreateNarrationInput): PerceptionTask; createTimer(input: CreateTimerInput): TimerTask; update(input: UpdateTaskInput): ProactiveTask; cancel(selector: TaskSelector): ProactiveTask[]; listActive(): ProactiveTask[]; cancelById(taskId: string): ProactiveTask | undefined; get(taskId: string): ProactiveTask | undefined; activePerceptionTasks(): PerceptionTask[]; mutate(taskId: string, generation: number, mutation: (task: ProactiveTask) => boolean): ProactiveTask | undefined; beginDelivery(taskId: string, generation: number, summary?: string): ProactiveTask | undefined; completeDelivery(taskId: string, generation: number): ProactiveTask | undefined; fail(taskId: string, generation: number, error: string): ProactiveTask | undefined; clear(): ProactiveTask[]; private createPerception; private resolveOne; private assertUniqueTitle; private rejectPresent; private newTaskId; } export {};