/**
 * angle-briefs — shape a small push-feed of concrete, personalized 选题 briefs
 * (PRD-0006 S9) from the SAME grounded context the coach reads (works +
 * selected-platform trends + interests).
 *
 * This is the honest replacement for the old hard-coded 3-sample 起手切角 card.
 * It is a PURE, deterministic function over the assembled context — no LLM round
 * trip on page load (so the feed is instant + free) and, crucially, NO
 * FABRICATION:
 *
 *   · Each brief's hook + why-it-is-rising is grounded in a REAL trend topic
 *     and/or the user's REAL interests; the title weaves the user's niche into
 *     the rising topic.
 *   · With THIN/zero work data we lean entirely on trends + interests and the
 *     `grounding` field says so — we never invent per-work precision ("3 of 5
 *     top creators abandoned…" style invented magnitudes the old samples used).
 *   · We never reference a metric AutoViral has not measured. Work grounding,
 *     when present, only cites the five real metrics already in CoachWorkInput.
 *
 * The shaping is intentionally template-light: it composes real fragments
 * (interest, trend title, the top work's actual play count) rather than writing
 * prose, so there is nothing for the function to hallucinate.
 */
import type { CoachWorkInput } from "./coach-session.js";
/** The grounding basis for a brief — drives the honest "why" + the UI chip. */
export type AngleGrounding = "trend+interest" | "trend" | "interest" | "thin";
export interface AngleBrief {
    /** Stable id (index-derived) so React keys + click handlers are stable. */
    id: string;
    /** The selection's name — also the new work's title + brief lead line. */
    title: string;
    /** A concrete opening hook the creator can shoot. */
    hook: string;
    /** Why this is worth doing now — grounded in the real trend/interest. */
    why: string;
    /** What this brief is grounded in — the UI shows an honest chip from this. */
    grounding: AngleGrounding;
}
/** The context the shaper grounds on — the coach's assembled context shape. */
export interface AngleBriefContext {
    platform: string;
    works: CoachWorkInput[];
    trendTopics: string[];
    interests: string[];
}
export interface ShapeAngleBriefsOptions {
    /** How many briefs to push (the feed is intentionally short). Default 5. */
    limit?: number;
}
/**
 * Shape the push feed of angle briefs from the grounded context. Deterministic
 * and honest: crosses each rising trend with the user's interests, leans on
 * interests alone when trend data is thin, and degrades to an honest single
 * "no signal yet" brief when there is neither trend nor interest to ground on.
 */
export declare function shapeAngleBriefs(ctx: AngleBriefContext, opts?: ShapeAngleBriefsOptions): AngleBrief[];
//# sourceMappingURL=angle-briefs.d.ts.map