/**
 * loadAgentContext — Brain context loading at agent boot.
 *
 * Promoted from forge/src/agents/shared/startup.ts (Vague 1.B.2).
 * Forge-specific coupling neutralized:
 * - "FORGE.md" hardcoded string → parameterizable via `projectMd` option
 * - forge_config / forge_decision categories → parameterizable
 *
 * @public @since 0.17.0
 */
import type { BrainPort } from "../ports/brain.js";
import type { LoggerPort } from "../ports/logger.js";
/**
 * Context loaded from Brain at agent boot.
 *
 * @public
 */
export interface AgentContext {
    /** Content of the project markdown document (e.g. FORGE.md), or null if not found. */
    projectMdContent: string | null;
    /** Recent decisions relevant to this agent's domain. */
    recentDecisions: Array<{
        content: string;
        created_at?: string;
    }>;
    /** Domain-specific context entries. */
    domainContext: Array<{
        content: string;
        created_at?: string;
    }>;
}
/**
 * Options for loadAgentContext.
 *
 * @public
 */
export interface LoadAgentContextOptions {
    /**
     * Brain query string + category tag for the project markdown document.
     * Example: `{ query: "FORGE.md 0-Employee Business OS", category: "forge_config", tag: "forge-md" }`
     * When omitted, no projectMd query is performed.
     */
    projectMd?: {
        /** FTS query string for the project markdown. */
        query: string;
        /** Brain category for the project markdown entry. */
        category: string;
        /** Brain tag for the project markdown entry. */
        tag: string;
    };
    /** Category to use when querying recent decisions (default: "decision"). */
    decisionsCategory?: string;
    /** Maximum number of recent decisions to load (default: 10). */
    recentDecisionsLimit?: number;
    /** Domain tag categories for context loading (default: ["context"]). */
    domainCategories?: string[];
    /** Maximum number of domain context entries to load (default: 20). */
    domainContextLimit?: number;
}
/**
 * Load agent context from Brain at boot.
 *
 * Three queries:
 * 1. Optional project markdown document (e.g. FORGE.md, CLAUDE.md)
 * 2. Recent decisions for the agent's domain tags
 * 3. Domain-specific context entries
 *
 * All queries are non-fatal — failures log a warning and return empty data.
 * This ensures agents can boot even when Brain is temporarily unavailable.
 *
 * @example
 * ```ts
 * const ctx = await loadAgentContext(brain, "forge-revenue", ["revenue", "gtm"], logger, {
 *   projectMd: { query: "FORGE.md 0-Employee Business OS", category: "forge_config", tag: "forge-md" },
 *   decisionsCategory: "forge_decision",
 * });
 * ```
 *
 * @public
 */
export declare function loadAgentContext(brain: BrainPort, agentId: string, domainTags: string[], logger: LoggerPort, opts?: LoadAgentContextOptions): Promise<AgentContext>;
//# sourceMappingURL=load-agent-context.d.ts.map