import type { Voice } from '../lib/db.js'; export type BriefKind = 'tech-spec' | 'article' | 'update' | 'social-post'; export interface BriefSection { heading: string; /** Instruction the writing LLM should follow when writing this section. */ guidance: string; /** Raw material assembled from notes and sources. */ points: string[]; /** Source note titles/urls grounding this section. */ sources: string[]; } export interface Briefing { id: number; workspaceId: string; title: string; kind: BriefKind; status: 'draft' | 'ready'; sections: BriefSection[]; noteIds: number[]; createdAt: string; updatedAt: string; } export interface BriefTemplateSection { heading: string; guidance: string; } export declare const BRIEF_TEMPLATES: Record; export interface BuildBriefInput { title: string; kind: BriefKind; noteIds?: number[]; notesText?: string[]; sources?: string[]; } export interface BuildBriefResult { briefing: Briefing; usedNotes: Array<{ id: number; title: string; body: string; source?: string; }>; } /** * Assemble a structured briefing from raw material: template sections, * note bodies folded in as grounding points, and source references. * Pure function — persistence is the caller's job. */ export declare function buildBrief(input: BuildBriefInput, resolveNote: (id: number) => { title: string; body: string; source?: string; } | undefined, workspaceId: string): BuildBriefResult; /** Render a briefing as a markdown document (the editorial "control sheet"). */ export declare function renderBriefingMarkdown(briefing: Briefing, voice?: Voice): string; /** Render the artifact skeleton: structure + guidance, voice baked in. */ export declare function renderArtifactSkeleton(briefing: Briefing, voice?: Voice): string; //# sourceMappingURL=brief.d.ts.map