/**
 * Built-in Role Definition Prompts
 *
 * This module provides utilities for loading agent role definition prompts
 * from the packaged markdown files or project-level overrides.
 *
 * @module
 */
import type { AgentRole, StewardFocus, WorkerMode } from '../types/index.js';
export interface LoadPromptOptions {
    /**
     * Project root directory to check for overrides.
     * If provided, will look for overrides in `{projectRoot}/.stoneforge/prompts/`
     */
    projectRoot?: string;
    /**
     * If true, skip project overrides and only use built-in prompts
     */
    builtInOnly?: boolean;
    /**
     * For workers, specifies whether to load the ephemeral or persistent worker prompt.
     * When 'persistent', loads persistent-worker.md instead of worker.md.
     * Defaults to ephemeral behavior (worker.md) for backward compatibility.
     */
    workerMode?: WorkerMode;
}
export interface RolePromptResult {
    /** The combined prompt content */
    prompt: string;
    /** Source of the prompt (built-in or project path) */
    source: 'built-in' | string;
    /** For stewards, whether the base was overridden */
    baseSource?: 'built-in' | string;
    /** For stewards, whether the focus was overridden */
    focusSource?: 'built-in' | string;
}
/**
 * Loads the built-in prompt for a role.
 *
 * @param role - The agent role
 * @param stewardFocus - For stewards, the focus area
 * @param workerMode - For workers, whether to load persistent or ephemeral prompt
 * @returns The prompt content, or undefined if not found
 */
export declare function loadBuiltInPrompt(role: AgentRole, stewardFocus?: StewardFocus, workerMode?: WorkerMode): string | undefined;
/**
 * Loads the prompt for a role, checking for project-level overrides first.
 *
 * For stewards, this loads base + focus prompts and allows independent overrides.
 *
 * @param role - The agent role
 * @param stewardFocus - For stewards, the focus area
 * @param options - Loading options
 * @returns The prompt result with content and source information
 */
export declare function loadRolePrompt(role: AgentRole, stewardFocus?: StewardFocus, options?: LoadPromptOptions): RolePromptResult | undefined;
/**
 * Loads the message triage prompt, checking for project-level overrides first.
 *
 * @param options - Loading options
 * @returns The prompt result with content and source information
 */
export declare function loadTriagePrompt(options?: LoadPromptOptions): RolePromptResult | undefined;
/**
 * Gets the list of available built-in prompt files.
 */
export declare function listBuiltInPrompts(): string[];
/**
 * Checks if a built-in prompt exists for a role.
 */
export declare function hasBuiltInPrompt(role: AgentRole, stewardFocus?: StewardFocus, workerMode?: WorkerMode): boolean;
export interface BuildAgentPromptOptions {
    /** The agent role */
    role: AgentRole;
    /** For stewards, the focus area */
    stewardFocus?: StewardFocus;
    /** For workers, whether to load the persistent or ephemeral prompt */
    workerMode?: WorkerMode;
    /** Task context to include (task description, acceptance criteria, etc.) */
    taskContext?: string;
    /** Additional instructions to append */
    additionalInstructions?: string;
    /** Project root for checking overrides */
    projectRoot?: string;
    /** Skip project overrides */
    builtInOnly?: boolean;
}
/**
 * Builds the complete startup prompt for an agent.
 *
 * Combines:
 * 1. Role definition prompt (built-in or project override)
 * 2. Task context (if provided)
 * 3. Additional instructions (if provided)
 *
 * @param options - Prompt building options
 * @returns The complete prompt string, or undefined if role prompt not found
 */
export declare function buildAgentPrompt(options: BuildAgentPromptOptions): string | undefined;
/**
 * Variables available for prompt template rendering.
 *
 * Prompt files can use `{{variableName}}` placeholders which are replaced
 * with actual values at load time.
 */
export interface PromptTemplateVars {
    /**
     * The base/target branch name (e.g. 'main', 'master', 'develop').
     * Replaces `{{baseBranch}}` in prompt templates.
     */
    baseBranch?: string;
}
/**
 * Renders a prompt template by replacing `{{variableName}}` placeholders
 * with values from the provided variables.
 *
 * Currently supported variables:
 * - `{{baseBranch}}` — the repository's base/target branch name
 *
 * Unknown template variables are left as-is (not replaced).
 *
 * @param content - The raw prompt content with template placeholders
 * @param vars - The template variable values to substitute
 * @returns The rendered prompt with placeholders replaced
 */
export declare function renderPromptTemplate(content: string, vars: PromptTemplateVars): string;
//# sourceMappingURL=index.d.ts.map