export type CavemanLevel = "full" | "lite" | "off"; export interface CompressProseResult { text: string; savedBytes: number; level: CavemanLevel; rulesVersion: number; } interface CavemanReplaceRule { find: string; replace: string; unlessAfter?: string; } interface CavemanDropRule { drop: string; initialOnly?: boolean; } type CavemanRule = CavemanReplaceRule | CavemanDropRule; export declare const CAVEMAN_RULES_VERSION = 3; /** Normalize a level knob value ("full" | "lite" | "off"). */ export declare function normalizeCavemanLevel(v: unknown, fallback?: CavemanLevel): CavemanLevel; export declare function configureCaveman({ caveman, cavemanSystem }?: { caveman?: string | null; cavemanSystem?: string | null; }): { tools: CavemanLevel; system: CavemanLevel; }; export declare function cavemanLevels(): { tools: CavemanLevel; system: CavemanLevel; }; /** Compact settings fingerprint; "" when fully off. */ export declare function cavemanTag(): string; /** Mask protected spans with NUL-delimited indexes. Input must be NUL-free. */ export declare function protectSpans(text: string): { masked: string; store: string[]; }; /** Restore placeholders; reports how many distinct slots were consumed. */ export declare function restoreSpans(masked: string, store: string[]): { text: string; consumed: number; }; export declare const LITE_RULES: CavemanRule[]; export declare const FULL_RULES: CavemanRule[]; /** * Compress prose deterministically. Returns { text, savedBytes, level, * rulesVersion }. Unknown/off levels and empty input return the input * unchanged with savedBytes 0. */ export declare function compressProse(text: string, { level }?: { level?: string; }): CompressProseResult; export {};