/**
 * Session Pool
 *
 * Manages a pool of reusable sessions for parallel agent execution.
 * Key benefits:
 * - 90% reduction in session creation time (500ms → 50ms)
 * - Reduced OpenCode server load
 * - Faster parallel task startup
 */
import type { PluginInput } from "@opencode-ai/plugin";
import type { PooledSession, SessionPoolConfig, SessionPoolStats, ISessionPool } from "./interfaces/session-pool.interface.js";
type OpencodeClient = PluginInput["client"];
export declare class SessionPool implements ISessionPool {
    private static _instance;
    private pool;
    private sessionsById;
    private config;
    private client;
    private directory;
    private healthCheckInterval;
    private stats;
    private constructor();
    static getInstance(client?: OpencodeClient, directory?: string, config?: Partial<SessionPoolConfig>): SessionPool;
    /**
     * Acquire a session from the pool or create a new one.
     */
    acquire(agentName: string, parentSessionID: string, description: string): Promise<PooledSession>;
    /**
     * Release a session back to the pool for reuse.
     */
    release(sessionId: string): Promise<void>;
    /**
     * Invalidate a session (remove from pool and delete).
     */
    invalidate(sessionId: string): Promise<void>;
    /**
     * Get current pool statistics.
     */
    getStats(): SessionPoolStats;
    /**
     * Cleanup stale sessions.
     */
    cleanup(): Promise<number>;
    /**
     * Shutdown the pool.
     */
    shutdown(): Promise<void>;
    private getPoolKey;
    private createSession;
    private deleteSession;
    private startHealthCheck;
}
export declare const sessionPool: {
    getInstance: typeof SessionPool.getInstance;
};
export {};
