/**
 * Static taint analyzer for extended-tier override JS.
 *
 * Goal: classify the override JS shipped with an extended-tier provider into
 * one of three risk tiers, so the dashboard + daemon trust prompt can
 * surface accurate language to the operator instead of a single generic
 * "this provider contains JS" warning.
 *
 *   - clean    : no flagged APIs at all. The override looks like pure string
 *                manipulation. Still extended-tier, but the warning copy is
 *                "this provider contains JS; nothing dangerous was detected".
 *   - elevated : touches process / dynamic codegen / dynamic require / eval
 *                / Function constructor / child_process. The warning copy is
 *                explicit ("this provider can run shell commands / dynamically
 *                load code").
 *   - hostile  : combines elevated APIs with network egress, AND uses obvious
 *                obfuscation (base64-decoded strings fed into Function / eval).
 *                The publish endpoint should reject these.
 *
 * Implementation note: this is a *static* analyzer — string + light AST scan
 * via Node's built-in parser. It is intentionally fail-loud: anything that
 * looks suspicious is flagged. False positives are fine; this exists to gate
 * the trust prompt, not to be a real sandbox. The real sandbox lives in
 * Phase 5 (isolated-vm).
 *
 * Used by:
 *   - `adhdev provider validate` (CLI tier classification)
 *   - registry publish endpoint static-check
 *   - daemon at provider-load time, to size the warning
 */
export type TaintLevel = 'clean' | 'elevated' | 'hostile';
export interface TaintFinding {
    /** What was found, e.g. "child_process.exec". */
    api: string;
    /** Coarse category. */
    category: TaintCategory;
    /** File the finding came from. */
    file: string;
    /** Line number (1-indexed) of the first character of the matched token. */
    line: number;
    /** The surrounding source excerpt, trimmed. */
    excerpt: string;
}
export type TaintCategory = 'process-control' | 'shell-exec' | 'fs-write' | 'fs-read' | 'network' | 'dynamic-codegen' | 'dynamic-require' | 'obfuscation' | 'global-mutation';
export interface TaintResult {
    level: TaintLevel;
    findings: TaintFinding[];
    files: string[];
}
export declare function analyzeOverrideTaint(manifestPath: string): TaintResult;
/** Format a result as a single CLI-friendly block. */
export declare function formatTaintResult(result: TaintResult): string;
