/**
 * TopicIntentBriefing — Layer 2 of the Topic Intent Layer.
 *
 * Renders the per-topic semantic state as a plain-text briefing that the
 * bootstrap context hooks prepend to the conversation history. Replaces
 * "here's the transcript" with "here's the arc, then the transcript."
 *
 * Per spec v14 section "Layer 2 — arc-aware continuation header":
 *   - Stated goal of the topic (when extracted; optional)
 *   - Open threads (tentative items with extracted text, hedged)
 *   - Established (authoritative items, unhedged)
 *   - Observation tier is NOT surfaced
 *
 * Framework-agnostic: pure rendering function. Same output reachable from
 * Claude Code bootstrap hooks, Codex bootstrap equivalents, and any other
 * harness that wants the briefing as a plain string.
 */
import { TopicIntentStore } from './TopicIntent.js';
export interface BriefingOptions {
    /** Override "now" for time-sensitive projections (testing). */
    nowMs?: number;
    /** Maximum number of items per section (defaults to 8). */
    maxPerSection?: number;
}
export interface BriefingResult {
    /** The full briefing text. Empty string when nothing tracked yet. */
    text: string;
    /** Whether anything was rendered (false → safe to skip injection entirely). */
    hasContent: boolean;
    /** Counts for telemetry / diagnostics. */
    counts: {
        authoritative: number;
        tentative: number;
        /** Task-frame refs (method/audience/goal) surfaced. */
        frame: number;
        /** Outstanding pending confirmation (if any). */
        pendingOutstanding: boolean;
    };
}
/**
 * Render the briefing for a topic. Returns an empty string when nothing has
 * accumulated to authoritative or tentative tier yet — observation-only is
 * not surfaced to avoid noise.
 */
export declare function renderTopicIntentBriefing(store: TopicIntentStore, topicId: number, opts?: BriefingOptions): BriefingResult;
//# sourceMappingURL=TopicIntentBriefing.d.ts.map