import type { AgentTool } from "@mariozechner/pi-agent-core";
import type { AgentSession } from "@mariozechner/pi-coding-agent";
import type { MemoryCitationsMode } from "../../config/types.memory.js";
import type { SkillsDiscoveryMode } from "../../config/types.skills.js";
import type { ResolvedTimeFormat } from "../date-time.js";
import type { EmbeddedContextFile } from "../pi-embedded-helpers.js";
import { type PromptMode } from "../system-prompt.js";
import type { EmbeddedSandboxInfo } from "./types.js";
import type { ReasoningLevel, ThinkLevel } from "./utils.js";
export declare function buildEmbeddedSystemPrompt(params: {
    workspaceDir: string;
    defaultThinkLevel?: ThinkLevel;
    reasoningLevel?: ReasoningLevel;
    extraSystemPrompt?: string;
    ownerNumbers?: string[];
    ownerDisplay?: "raw" | "hash";
    ownerDisplaySecret?: string;
    reasoningTagHint: boolean;
    skillsPrompt?: string;
    docsPath?: string;
    reactionGuidance?: {
        level: "minimal" | "extensive";
        channel: string;
    };
    workspaceNotes?: string[];
    /** Controls which hardcoded sections to include. Defaults to "full". */
    promptMode?: PromptMode;
    runtimeInfo: {
        agentId?: string;
        host: string;
        os: string;
        arch: string;
        node: string;
        model: string;
        provider?: string;
        capabilities?: string[];
        channel?: string;
        /** Supported message actions for the current channel (e.g., react, edit, unsend) */
        channelActions?: string[];
    };
    messageToolHints?: string[];
    sandboxInfo?: EmbeddedSandboxInfo;
    tools: AgentTool[];
    modelAliasLines: string[];
    userTimezone: string;
    userTime?: string;
    userTimeFormat?: ResolvedTimeFormat;
    contextFiles?: EmbeddedContextFile[];
    memoryCitationsMode?: MemoryCitationsMode;
    /**
     * Skill names to inline into the system prompt under "Auto-loaded Skills".
     * Passed through from `agents.defaults.skills.autoLoadInline` config.
     * Skipped in minimal/none modes (sub-agents stay lean). Empty / undefined
     * is a no-op.
     */
    autoLoadInlineSkills?: string[];
    /**
     * Skills discovery mode (Stage 3.7). "preload" (default) keeps the
     * existing <available_skills> catalog; "jit" / "hybrid" emit anchor-list
     * and auto-injected match blocks.
     */
    skillsDiscoveryMode?: SkillsDiscoveryMode;
    /** Anchor skill names always present by name in the prompt. */
    skillsAnchorList?: string[];
    /**
     * Current user message — feeds into auto-inject keyword match. May be
     * empty for compaction / system-driven runs; auto-inject becomes a no-op.
     */
    currentUserMessage?: string;
    /**
     * Stage 4 of the prompt-reduction plan. When true, drops migrated
     * sections from the central prompt (Tool Call Style, Edit Tool Best
     * Practices, Verify Your Work, Reactions verbose body, Symi CLI Quick
     * Ref, Symi Self-Update) — their content lives in skills / tool
     * descriptions / runtime guards. Combined with discoveryMode in
     * jit/hybrid, also drops the up-to-30KB <available_skills> catalog.
     */
    compactMode?: boolean;
}): string;
export declare function createSystemPromptOverride(systemPrompt: string): (defaultPrompt?: string) => string;
export declare function applySystemPromptOverrideToSession(session: AgentSession, override: string | ((defaultPrompt?: string) => string)): void;
