import { z } from "zod"; import type { AgentTool } from "@kenkaiiii/gg-agent"; import { type ExtractedFrame } from "../core/frames.js"; import { type ShotScore } from "../core/vision.js"; declare const ComposeThumbnailVariantsParams: z.ZodObject<{ input: z.ZodString; outputDir: z.ZodString; text: z.ZodString; count: z.ZodOptional; intervalSec: z.ZodOptional; minSpacingSec: z.ZodOptional; strategy: z.ZodOptional>; model: z.ZodOptional; detail: z.ZodOptional>; fontFile: z.ZodOptional; fontSize: z.ZodOptional; fontColor: z.ZodOptional; outlineColor: z.ZodOptional; position: z.ZodOptional>; width: z.ZodOptional; }, z.core.$strip>; interface VariantPick { frame: ExtractedFrame; score: ShotScore; } /** * compose_thumbnail_variants — generate N thumbnails for A/B testing. * * Samples frames at `intervalSec`, scores via vision rubric, picks the * top-N spaced ≥ minSpacingSec apart, burns the headline. YouTube * native A/B is now standard — variants beat single guesses. * * Strategies: * - "mixed" (default): 3 distinct frames, same label. * - "expression": same as mixed — picked separately for face-driven * content where the agent wants to emphasise expression variation. * - "label": ONE best frame, 3 LLM-generated label variations. * Use when the source only has one usable visual. */ export declare function createComposeThumbnailVariantsTool(cwd: string): AgentTool; /** * Greedy top-N selection with minimum spacing. Sort by score desc, walk * the list, accept a candidate only if it's ≥ minSpacingSec away from * every already-accepted pick. Stable — ties preserve input order. * * Pure — exported for testing. */ export declare function pickTopSpaced(paired: VariantPick[], count: number, minSpacingSec: number): VariantPick[]; /** * Ask the LLM for N label variations. Pure-ish (network call) — exported * for testing under a mocked fetch. */ export declare function generateLabelVariations(headline: string, n: number, opts?: { apiKey?: string; model?: string; signal?: AbortSignal; }): Promise; export {}; //# sourceMappingURL=compose-thumbnail-variants.d.ts.map