import type { ChatMessage, DarwinTrajectory, DpoRow, ExportOptions, ExportResult, SftRow } from './types.js'; /** * Rough token estimate for a message list. We deliberately do NOT pull in a * tokenizer dependency (the package is dependency-free, like darwin-mode). The * ~4-chars-per-token heuristic is conservative and stable; tool_calls * arguments count too (they cost context). This is a budget gate, not a billing * figure — over-estimating is the safe direction. */ export declare function estimateTokens(messages: ChatMessage[]): number; /** * THE CONTAMINATION GUARD. Throws if any trajectory's instance_id appears in * the eval holdout. Call it the first thing the exporter does — fail loud, not * silently filter, when train/eval disjointness is violated. */ export declare function assertTrainEvalDisjoint(trajectories: DarwinTrajectory[], evalHoldout: Iterable): void; /** * Build the SFT and DPO sets from a Darwin trajectory archive. * * @param trajectories the input archive (already-excluded-of-holdout OR raw — * the exporter excludes holdout members itself, but ASSERTS disjointness on * what remains so a programming error can't slip eval data through). */ export declare function exportTrainingData(trajectories: DarwinTrajectory[], options: ExportOptions): ExportResult; /** Serialize SFT rows to JSONL (one row per line). */ export declare function sftToJsonl(rows: SftRow[]): string; /** Serialize DPO rows to JSONL (one row per line). */ export declare function dpoToJsonl(rows: DpoRow[]): string; //# sourceMappingURL=export.d.ts.map