import type { AgentConfig, ToolSchema } from "../agent/types.js";
import type { CodeMapResult } from "../indexer/types.js";
/**
 * Inputs to a system-prompt builder. Passed to the default
 * `buildSystemPrompt` and to any custom builder a consumer wires into
 * `CodingAgent` via the `buildSystemPrompt` constructor option.
 *
 * Custom builders can use these freely or ignore them — minicode's
 * default ships a coding-agent identity, workspace context, tool
 * guidelines, code-map injection, and safety rules. Consumers building
 * domain-specific agents (review bots, RAG assistants, non-coding
 * use cases) typically want to drop most of that and assemble their
 * own from these inputs.
 */
export interface SystemPromptContext {
    config: AgentConfig;
    tools: ToolSchema[];
    /**
     * The current code map snippet, when one is available. Built once per
     * turn (or per session, depending on `enableDynamicPrompt`) and
     * passed in so builders can inject it without knowing how it was
     * computed. May be undefined when no language plugin is active.
     */
    codeMap?: CodeMapResult | undefined;
}
/**
 * Function shape for a system-prompt builder. Returning a Promise is
 * supported so consumers can fetch context from external sources (RAG
 * snippets, git status, on-disk preferences, etc.) before assembling
 * the prompt.
 */
export type SystemPromptBuilder = (ctx: SystemPromptContext) => string | Promise<string>;
export declare function buildSystemPrompt(ctx: SystemPromptContext): string;
//# sourceMappingURL=system-prompt.d.ts.map