/**
 * ═══════════════════════════════════════════════════════════════════════════
 * Audit Trail — Capture au niveau du Bridge
 * ═══════════════════════════════════════════════════════════════════════════
 *
 * Pseudonymise les externalKeys (Discord userId, phone, Telegram id)
 * en data_subject_id audit et propage le contexte au runner.
 *
 * Appelé par OverBridgeServer avant l'auto-dispatch vers agent.run.
 */
import type { LegalBasis } from './types.js';
export interface BridgeCaptureResult {
    /** data_subject_id pseudonymisé (hash SHA-256 de l'externalKey) */
    dataSubjectId: string;
    /** Base légale résolue selon interne/tiers */
    legalBasis: LegalBasis;
    /** Source du sujet */
    source: 'discord' | 'telegram' | 'voipms' | 'twilio' | 'generic';
    /** True si le sujet est interne (allowlist) */
    isInternal: boolean;
}
/**
 * Capture et pseudonymise l'identité d'un utilisateur bridge.
 *
 * @param externalKey Clé externe brute (userId Discord, phone, etc.)
 * @param provider Provider webhook source
 * @returns BridgeCaptureResult avec dataSubjectId pseudonymisé
 */
export declare function captureBridgeSubject(externalKey: string, provider: string): BridgeCaptureResult;
/**
 * Propage le data_subject_id au contexte d'exécution via variable d'environnement.
 * Le runner_hook.ts lit OVERMIND_CURRENT_SUBJECT_ID pour le passer au guard.
 *
 * Note : cette approche est safe car le bridge est mono-request par spawn.
 */
export declare function propagateSubjectContext(result: BridgeCaptureResult): void;
/**
 * Nettoie le contexte après exécution.
 */
export declare function clearSubjectContext(): void;
//# sourceMappingURL=bridge_capture.d.ts.map