/**
 * Helper functions for the START_CODING_TASK action.
 *
 * - createScratchDir()      -- Creates a scratch sandbox directory for non-repo tasks
 * - generateLabel()         -- Generate a short semantic label from repo URL and/or task description
 * - registerSessionEvents() -- Register lifecycle event handlers for a spawned session
 *
 * @module actions/coding-task-helpers
 */
import type { IAgentRuntime } from "@elizaos/core";
import { type HandlerCallback } from "@elizaos/core";
import type { PTYService } from "../services/pty-service.ts";
/**
 * Create a scratch sandbox directory for non-repo tasks.
 *
 * When `PARALLAX_CODING_DIRECTORY` is set (e.g. `~/Projects`), creates a
 * named subdir like `~/Projects/todo-app/` derived from the task label.
 * Otherwise falls back to `~/.eliza/workspaces/{uuid}`.
 */
export declare function createScratchDir(runtime?: IAgentRuntime, label?: string): string;
/**
 * Generate a short semantic label from repo URL and/or task description.
 * e.g. "git-workspace-service-testbed/hello-mima" or "scratch/react-research"
 */
export declare function generateLabel(repo: string | undefined, task: string | undefined): string;
/**
 * Register lifecycle event handlers for a spawned session.
 *
 * When `coordinatorActive` is true the SwarmCoordinator owns chat messaging
 * and session lifecycle for blocked / task_complete / error events.
 * This listener still handles scratch-dir cleanup regardless.
 */
export declare function registerSessionEvents(ptyService: PTYService, runtime: IAgentRuntime, sessionId: string, label: string, scratchDir: string | null, callback?: HandlerCallback, coordinatorActive?: boolean): void;
//# sourceMappingURL=coding-task-helpers.d.ts.map