/**
 * Source-trust-aware context scanning.
 *
 * scan() asks "is this text an injection?". scanContext() adds the question that
 * actually matters for agents: "where did this text come from, and what should
 * we DO about it?". Untrusted content (a tool result, a fetched file, an MCP
 * response, a job description) that trips the scanner is contained per policy
 * and always produces a notification; trusted user input is never muzzled.
 */
import type { ScanResult, SovGuardConfig } from './types.js';
/** Where a piece of text entered the agent's context, in increasing distrust. */
export type SourceTrust = 'user' | 'job_description' | 'workspace_file' | 'mcp_result' | 'api_response' | 'other_agent';
/** What to do when UNTRUSTED content trips the scanner. */
export type TaintPolicy = 'block' | 'strip' | 'quarantine';
/** The decision scanContext made for this piece of text. */
export type TaintAction = 'allow' | 'block' | 'strip' | 'quarantine';
export interface ContextScanOptions extends SovGuardConfig {
    /** Required: where this text came from. Drives the trust decision. */
    source: SourceTrust;
    /** Containment policy for flagged untrusted content. Default: 'strip'. */
    policy?: TaintPolicy;
}
/** Routable notification emitted whenever content is contained. */
export interface TaintNotification {
    severity: 'low' | 'medium' | 'high' | 'critical';
    source: SourceTrust;
    action: TaintAction;
    score: number;
    flags: string[];
    /** Redacted/short evidence safe to surface to a human. */
    evidence: string;
    /** Human-readable summary for buyer/seller/operator. */
    message: string;
}
export interface ContextScanResult {
    source: SourceTrust;
    /** True only for sources we treat as the agent's own instructions. */
    trusted: boolean;
    /** True when untrusted content tripped the scanner. */
    flagged: boolean;
    action: TaintAction;
    /** The text to actually use downstream (sanitized when stripped/quarantined). */
    text: string;
    scan: ScanResult;
    /** Present whenever action !== 'allow'. */
    notify?: TaintNotification;
}
export declare function scanContext(text: string, options: ContextScanOptions): Promise<ContextScanResult>;
//# sourceMappingURL=context.d.ts.map