import type { PluginInput } from '@opencode-ai/plugin'; import type { MultiplexerConfig } from '../config/schema'; /** * Event shape for session events */ interface SessionEvent { type: string; properties?: { info?: { id?: string; parentID?: string; title?: string; directory?: string; }; sessionID?: string; status?: { type: string; }; }; } /** * MultiplexerSessionManager tracks child sessions and spawns/closes multiplexer panes for them. * * Uses session.status events for completion detection instead of polling. * Supports both tmux and zellij multiplexers. */ export declare class MultiplexerSessionManager { private client; private serverUrl; private directory; private multiplexer; private sessions; private pollInterval?; private enabled; constructor(ctx: PluginInput, config: MultiplexerConfig); /** * Handle session.created events. * Spawns a multiplexer pane for child sessions (those with parentID). */ onSessionCreated(event: SessionEvent): Promise; /** * Handle session.status events for completion detection. * Uses session.status instead of deprecated session.idle. * * When a session becomes idle (completed), close its pane. */ onSessionStatus(event: SessionEvent): Promise; /** * Handle session.deleted events. * When a session is deleted, close its multiplexer pane immediately. */ onSessionDeleted(event: SessionEvent): Promise; private startPolling; private stopPolling; /** * Poll sessions for status updates (fallback for reliability). * Also handles timeout and missing session detection. */ private pollSessions; private closeSession; /** * Clean up all tracked sessions. */ cleanup(): Promise; } /** * @deprecated Use MultiplexerSessionManager instead */ export declare const TmuxSessionManager: typeof MultiplexerSessionManager; export {};