import type { PluginInput } from "@opencode-ai/plugin"; import type { TmuxConfig } from "../../config/schema"; interface SessionCreatedEvent { type: string; properties?: { info?: { id?: string; parentID?: string; title?: string; }; }; } export interface TmuxUtilDeps { isInsideTmux: () => boolean; getCurrentPaneId: () => string | undefined; } export declare class TmuxSessionManager { private client; private tmuxConfig; private serverUrl; private sourcePaneId; private sessions; private pendingSessions; private spawnQueue; private deferredSessions; private deferredQueue; private deferredAttachInterval?; private deferredAttachTickScheduled; private nullStateCount; private deps; private pollingManager; constructor(ctx: PluginInput, tmuxConfig: TmuxConfig, deps?: TmuxUtilDeps); private isEnabled; private getCapacityConfig; private getSessionMappings; private removeTrackedSession; private markSessionClosePending; private queryWindowStateSafely; private tryCloseTrackedSession; private retryPendingCloses; private enqueueDeferredSession; private removeDeferredSession; private startDeferredAttachLoop; private stopDeferredAttachLoop; private tryAttachDeferredSession; private waitForSessionReady; onSessionCreated(event: SessionCreatedEvent): Promise; private enqueueSpawn; onSessionDeleted(event: { sessionID: string; }): Promise; private closeSessionById; createEventHandler(): (input: { event: { type: string; properties?: unknown; }; }) => Promise; cleanup(): Promise; } export {};