/**
 * agent-session-runner.ts
 *
 * Streaming variant of runAgent wired to a VIBN agent_sessions row.
 * After every LLM turn + tool call, it PATCHes the session in the VIBN DB
 * so the frontend can poll (and later WebSocket) the live output.
 *
 * Key differences from runAgent:
 *  - Accepts an `emit` callback instead of updating job-store
 *  - Accepts an `isStopped` check so the frontend can cancel mid-run
 *  - Tracks which files were written/modified for the changed_files panel
 *  - Calls vibn-frontend's PATCH /api/projects/[id]/agent/sessions/[sid]
 */
import { AgentConfig } from './agents';
import { ToolContext } from './tools';
export interface OutputLine {
    ts: string;
    type: 'step' | 'stdout' | 'stderr' | 'info' | 'error' | 'done';
    text: string;
}
export interface SessionRunOptions {
    sessionId: string;
    projectId: string;
    vibnApiUrl: string;
    appPath: string;
    repoRoot?: string;
    isStopped: () => boolean;
    autoApprove?: boolean;
    giteaRepo?: string;
    coolifyAppUuid?: string;
    coolifyApiUrl?: string;
    coolifyApiToken?: string;
}
export declare function runSessionAgent(config: AgentConfig, task: string, ctx: ToolContext, opts: SessionRunOptions): Promise<void>;
