import type { ExtensionCommandContext, ExtensionContext, RegisteredCommand } from "./types.js"; export interface CommandSupervision { usage: string; effect: string; busyUsage?: string; /** Reject unsafe argument variants before invoking the original handler. */ validate?: (args: string) => void; allowBusy?: (args: string) => boolean; } export interface DecisionRequest { id: string; kind: "select" | "confirm" | "input"; title: string; detail?: string; options?: string[]; } interface Host { localCommands?(): Array<{ name: string; description?: string; }>; context(): ExtensionCommandContext; commands(): RegisteredCommand[]; invoke(name: string, args: string, ctx: ExtensionCommandContext): Promise; } /** Generic host mechanism; it has no knowledge of individual feature states. */ export declare class SessionSupervision { private host?; private sessionId?; private providers; private decisions; private executing; private notifications; notify(message: string, level: string): void; get active(): boolean; bind(host: Host): void; registerSnapshot(name: string, read: (ctx: ExtensionContext) => unknown | Promise): void; start(sessionId: string): void; stop(): void; cancelDecisions(reason: string): void; private context; catalog(): { source: string; remote: boolean; availability: string; name: string; description?: string; }[]; snapshot(): Promise<{ states: Record; pendingDecisions: DecisionRequest[]; commandRunning: boolean; notifications: { message: string; level: string; }[]; }>; execute(name: string, args: string): Promise; request(input: Omit, signal?: AbortSignal): Promise; answer(id: string, value: unknown): void; } export {};