import type { CreateHandoffInput, HandoffReference } from "./types.js"; /** Bounds for deterministic packet fields (no unbounded dumps). */ export declare const HANDOFF_BOUNDS: { readonly maxObjectiveChars: 400; readonly maxListItems: 20; readonly maxItemChars: 200; readonly maxFiles: 40; readonly maxTraceEvents: 30; readonly maxGitStatusLines: 40; readonly maxPacketChars: 12000; readonly maxRefChars: 240; }; export interface DeterministicDraft { objective: string; done: string[]; pending: string[]; blockers: string[]; files_touched: string[]; verification_status: string; next_action: string; references: HandoffReference[]; suggested_skills: string[]; focus?: string; /** Diagnostics for tests (never stored as secrets). */ sources: { git: boolean; trace: boolean; /** @deprecated Use projectGoal. */ goal: boolean; projectGoal: boolean; daily: boolean; }; } export declare function clampText(s: string, max: number): string; export declare function clampList(items: string[], maxItems?: number): string[]; /** * Build a handoff draft from git status/diff, recent traces, and session memory. * Purely deterministic — never invokes a model. */ export declare function buildDeterministicDraft(cwd: string, input?: CreateHandoffInput): DeterministicDraft; /** Ensure draft (including refs/skills/focus) stays under maxPacketChars. */ export declare function enforceDraftBounds(draft: DeterministicDraft): DeterministicDraft; /** * Optional LLM summarization hook. Callers that request --llm / auto-LLM MUST * provide a real summarizer; there is no default that fabricates model_calls. */ export type HandoffSummarizer = (draft: DeterministicDraft, focus?: string) => Promise<{ draft: DeterministicDraft; model_calls: number; warning: string; }>; export declare const LLM_COST_WARNING = "LLM handoff generation is cost-bearing (one summarization call). Prefer deterministic create unless you need a narrative summary."; export declare const LLM_NOT_IMPLEMENTED = "LLM handoff generation is not implemented. Omit --llm for deterministic create (or inject a summarizer in tests/integrations)."; export declare class LlmHandoffNotImplementedError extends Error { constructor(message?: string); } /** Serialize a draft for size checks (all fields that land in the artifact). */ export declare function draftCharCount(draft: DeterministicDraft): number;