/**
 * Path globs whose files are NEVER read-and-sent to an author model. Matched
 * against the repo-relative POSIX path AND its basename. Beyond spec #1's
 * skip-set; an egress guarantee, not just churn-avoidance.
 */
export declare const SECRET_DENY_GLOBS: readonly RegExp[];
/** True if this repo-relative path is credential-bearing and must never be summarized. */
export declare function isSecretBearingPath(repoRelPath: string): boolean;
/**
 * Content tripwire — true if the committed content carries credential-shaped
 * material (api keys, secret assignments, opaque tokens). Reuses the live-tail
 * redactor's rule set so there is ONE definition of "looks like a secret".
 */
export declare function contentHasCredentialMaterial(content: string): boolean;
/**
 * Extract DISTINCTIVE identifiers from covered code (or, for a dir, from its
 * concatenated child summaries + child basenames). "Distinctive" = a declared
 * name (after function/class/const/…), OR a token with an internal uppercase or
 * underscore (camelCase / PascalCase / snake_case). Generic English prose that
 * happens to appear in code (e.g. "data", "the") is intentionally NOT enough to
 * satisfy validation — a summary must name something the code actually defines.
 */
export declare function extractCodeSymbols(coveredText: string): Set<string>;
/** True if the summary names ≥1 symbol verifiably present in the covered code. */
export declare function summaryReferencesCoveredSymbol(summary: string, coveredSymbols: Set<string>): boolean;
export interface SummaryValidation {
    ok: boolean;
    reason: string;
}
/**
 * The deterministic quality bar (spec §Tier 2.9 + Tier 1 parity). A summary must
 * be non-empty, within [minChars, maxChars] (a length FLOOR, not just a cap), and
 * reference ≥1 distinctive symbol present in the covered code. No LLM. Same check
 * for the inline write route and the background sweep — the inline path is never a
 * lower-validation backdoor.
 */
export declare function validateSummaryDeterministic(opts: {
    summary: string;
    minChars: number;
    maxChars: number;
    coveredSymbols: Set<string>;
}): SummaryValidation;
/**
 * Neutralize instruction-shaped content in a model-authored summary BEFORE it is
 * persisted. The persisted summary is later read by spec #5's navigating
 * sub-agent; a summary that smuggled "ignore previous instructions" would be an
 * injection into that agent. We declaw the phrasing (it stays human-readable) and
 * report whether anything was neutralized.
 */
export declare function neutralizeInstructionShapedContent(summary: string): {
    text: string;
    neutralized: boolean;
};
/**
 * A stable hash of the concatenated DIRECT-child summaries. A dir is re-authored
 * (an LLM call) ONLY when this changes; a dir whose tree-oid flipped but whose
 * child digest is unchanged gets a fingerprint-only refresh (no LLM call).
 */
export declare function childDigestHash(childSummaries: readonly string[]): string;
/** Wrap untrusted repo content / child summaries as DATA, never instructions. */
export declare function delimitUntrusted(label: string, content: string): string;
//# sourceMappingURL=cartographerSummary.d.ts.map