import type { PluginInput } from "@opencode-ai/plugin"; import type { BackgroundTaskConfig } from "../config"; import type { ModelResolutionService } from "./model-resolution-service"; export interface BackgroundTask { id: string; status: "running" | "completed" | "failed" | "cancelled"; description: string; parentSessionID: string; sessionID?: string; result?: string; error?: string; startedAt: number; completedAt?: number; } export interface ModelConfig { providerID: string; modelID: string; } export interface BackgroundManager { createTask: (parentSessionID: string, description: string, prompt: string, agent: string, model?: ModelConfig) => Promise; getTask: (taskId: string) => BackgroundTask | undefined; getTasksByParentSession: (sessionID: string) => BackgroundTask[]; cancelTask: (taskId: string) => boolean; cancelAllTasks: (parentSessionID?: string) => number; waitForTask: (taskId: string, timeoutMs?: number) => Promise; getParentSessionModel: (parentSessionID: string) => Promise; } export declare function createBackgroundManager(ctx: PluginInput, config?: BackgroundTaskConfig, modelService?: ModelResolutionService): BackgroundManager;