export type ContextFileInput = { path: string; content: string; mimeType?: string; vaultEntry?: { tags: string[]; description: string; } | null; }; export type ProcessedFile = { path: string; content: string; originalLines: number; finalLines: number; strategy: 'passthrough' | 'schema-extract' | 'section-extract' | 'truncate'; annotation: string | null; }; export type PreProcessorConfig = { enabled: boolean; maxLinesPerFile: number; maxTotalContextLines: number; strategies: Array<'schema-extract' | 'section-extract' | 'truncate'>; headLines: number; tailLines: number; }; export declare function getDefaultConfig(): PreProcessorConfig; export declare function preprocessContext(files: ContextFileInput[], config: PreProcessorConfig): ProcessedFile[]; /** * Budget-aware trim that preserves prescriptive content (P0) over prose (P2). * Returns the trimmed string, or `null` when the content has no P0 lines (no command * blocks, no CRITICAL sections) — the caller then falls back to the generic strategies, * so non-prescriptive files (vault notes, code) keep their existing behavior. * * Dropping is done lowest-priority-first (P2 then P1, never P0), preserving original * order; each run of removed lines collapses into a single `[... trimmed N lines]` * marker so the agent knows content was elided and can read the full file from disk. */ export declare function priorityAwareTrim(content: string, budgetBytes: number): string | null;