/**
 * System prompt construction and project context loading
 */
import type { GitRepoState } from "./git-repo-state.js";
import type { MemoryIndexes } from "./resource-loader.js";
import { type Skill } from "./skills.js";
export interface BuildSystemPromptOptions {
    /** Custom system prompt (replaces default). */
    customPrompt?: string;
    /** Tools to include in prompt. Default: [read, bash, edit, write] */
    selectedTools?: string[];
    /** Optional one-line tool snippets keyed by tool name. */
    toolSnippets?: Record<string, string>;
    /** Additional guideline bullets appended to the default system prompt guidelines. */
    promptGuidelines?: string[];
    /** Text to append to system prompt. */
    appendSystemPrompt?: string;
    /** UI type the agent is communicating through (e.g. "tui", "telegram", "rpc"). */
    uiType?: string;
    /** Working directory. Default: process.cwd() */
    cwd?: string;
    /** Pre-loaded context files. */
    contextFiles?: Array<{
        path: string;
        content: string;
    }>;
    /** Memory indexes (global and project). */
    memoryIndexes?: MemoryIndexes;
    /** Pre-loaded skills. */
    skills?: Skill[];
    /** Git repo state snapshot (branch, dirty count, recent commits, tags, open PRs). */
    gitRepoState?: GitRepoState;
    /** Identity of the currently active model (provider and model ID). */
    currentModel?: {
        provider: string;
        id: string;
    };
}
/**
 * Format a dream last-run ISO timestamp as a human-readable relative age.
 * Returns "Never" if timestamp is null.
 * Uses hours for <24h, days otherwise.
 * @param isoTimestamp ISO timestamp string or null
 * @param now Reference date for computing age (default: current time)
 */
export declare function formatDreamAge(isoTimestamp: string | null, now?: Date): string;
/** Build the system prompt with tools, guidelines, and context */
export declare function buildSystemPrompt(options?: BuildSystemPromptOptions): string;
//# sourceMappingURL=system-prompt.d.ts.map