import { type ChildProcess } from 'node:child_process';
export type ChatHistoryEntry = {
    role: 'user' | 'assistant';
    content: string;
};
export type ChatSession = {
    process: ChildProcess;
    lastActivity: Date;
    workspace: string;
    runtime: 'claude' | 'codex';
    claudeSessionId: string | null;
    history: ChatHistoryEntry[];
    outputBuffer: string;
};
export declare function generateSessionId(): string;
export declare function spawnChat(sessionId: string, message: string, workspace: string, runtime?: 'claude' | 'codex', context?: string, model?: string, chatMode?: 'ask' | 'plan' | 'agent'): ChatSession;
export declare function getSession(sessionId: string): ChatSession | undefined;
export declare function getSessionHistory(sessionId: string): ChatHistoryEntry[];
export declare function touchSession(sessionId: string): void;
export declare function kill(sessionId: string): boolean;
export declare function cleanup(): void;
export declare function getActiveSessionCount(): number;
