/** * Hook rewriter. * * Given a current hook + topic + (optional) transcript context + a target * pattern from the `viral-hook-patterns` skill, produce 3 candidate * rewrites. ONE LLM call. The agent surfaces candidates to the user; * we never auto-apply (we don't generate footage). * * The 12 patterns below are the compact form of the skill — name + * one-line structure each. Plenty for the LLM; not enough to bloat the * prompt. */ export declare const HOOK_PATTERNS: readonly ["click-to-unpause", "shock-intrigue-satisfy", "foreshadow-ending", "but-so-escalation", "power-word", "crazy-progression", "match-thumbnail", "i-asked-google", "credibility-plus-n", "cliffhanger", "first-frame-thumbnail", "auto"]; export type HookPattern = (typeof HOOK_PATTERNS)[number]; export interface HookCandidate { line: string; pattern: string; why: string; } export interface HookRewriteResult { candidates: HookCandidate[]; chosenPattern: string; why: string; } export interface RewriteOptions { apiKey?: string; model?: string; signal?: AbortSignal; } export interface RewriteInput { currentHook: string; videoTopic: string; transcriptExcerpt?: string; pattern: HookPattern; } /** * Run ONE LLM call. Throws on parse / network error so the wrapper * converts to err(). */ export declare function runHookRewrite(input: RewriteInput, opts?: RewriteOptions): Promise; /** * Parse the model's JSON. Robust to missing keys; pads to exactly 3 * candidates so the caller always has a stable shape. * * Pure — exported for testing. */ export declare function parseRewriteResponse(content: string, requestedPattern: HookPattern): HookRewriteResult; //# sourceMappingURL=hook-rewrite.d.ts.map