import type { AgentConfig, SystemPromptSection } from "shared";
/**
 * Compile the agent's identity and user context into a markdown string
 * suitable for appending to the Claude Code preset system prompt.
 *
 * Returns an empty string if the config has no meaningful identity data.
 */
export declare function compileIdentityPrompt(config: AgentConfig): string;
/**
 * Scaffold a new agent workspace with template files.
 * Copies scaffold files into the workspace and creates the memory/ subdirectory.
 *
 * Skips files that already exist in the workspace.
 */
export declare function scaffoldWorkspace(workspacePath: string): void;
/**
 * Read a workspace file if it exists. Returns undefined if not found.
 */
export declare function readWorkspaceFile(workspacePath: string, filename: string): string | undefined;
/**
 * Pre-load workspace files into a string suitable for inclusion in the system prompt.
 *
 * Reads workspace files (SOUL.md, USER.md, TOOLS.md, HEARTBEAT.md, MEMORY.md,
 * and recent memory journals) and concatenates them for context injection.
 */
export declare function compileWorkspaceContext(workspacePath: string): string;
export interface CompiledSystemPrompt {
    /** The full assembled append string — exactly what sessions receive */
    prompt: string;
    sections: SystemPromptSection[];
    /** Measured on `prompt` (joiners/headers count), not the sum of sections */
    totalChars: number;
    totalEstTokens: number;
}
/**
 * Compile the full per-agent system prompt append (identity + pre-loaded
 * workspace context) along with a per-section breakdown for preview UIs.
 *
 * The `prompt` field is the single source of truth for what gets appended to
 * the session system prompt — all session-launch paths assemble it from here.
 */
export declare function compileSystemPrompt(config: AgentConfig, workspacePath: string): CompiledSystemPrompt;
//# sourceMappingURL=claude-compiler.d.ts.map