/**
 * ╔══════════════════════════════════════════════════════════════════════╗
 * ║   OVERMIND BRIDGE — DirectiveParser (Agent-Side Protocol)            ║
 * ║                                                                      ║
 * ║   Permet aux agents d'injecter des directives structurées dans      ║
 * ║   leurs réponses textuelles. Le bridge les extrait et les exécute.  ║
 * ║                                                                      ║
 * ║   PATTERN                                                            ║
 * ║   ───────                                                            ║
 * ║   Inspiré du `CONTEXT_UPDATE: step=X employe_id=Y` de bt-sms.        ║
 * ║                                                                      ║
 * ║   L'agent écrit dans sa réponse :                                   ║
 * ║                                                                      ║
 * ║     "Voici mon analyse.                                             ║
 * ║      SESSION_ID: hermes-sess-abc123                                  ║
 * ║      CONTEXT_UPDATE: step=awaiting_description employe_id=42         ║
 * ║      BRIDGE_NEXT: agent=scout prompt=\"Analyse BTC\"                  ║
 * ║      BRIDGE_END"                                                      ║
 * ║                                                                      ║
 * ║   Le bridge :                                                        ║
 * ║     1. Extrait SESSION_ID, l'assigne au store                       ║
 * ║     2. Patche le context (state machine)                            ║
 * ║     3. Lance automatiquement un nouveau call vers scout              ║
 * ║     4. Supprime les directives du texte retourné au client          ║
 * ║                                                                      ║
 * ║   DIRECTIVES SUPPORTÉES                                              ║
 * ║   ──────────────────────                                             ║
 * ║   - SESSION_ID: <id>             → assigne le sessionId             ║
 * ║   - CONTEXT_UPDATE: k=v k=v      → patche le context                ║
 * ║   - BRIDGE_NEXT: method=X ...    → déclenche un appel suivant       ║
 * ║   - BRIDGE_END                   → arrête la chaîne de next calls   ║
 * ║   - BRIDGE_HINT: <text>          → tag/metadata (no action)         ║
 * ╚══════════════════════════════════════════════════════════════════════╝
 */
import { type BridgeLogger } from './utils.js';
import type { JsonRpcRequest } from './OverBridgeServer.js';
export type DirectiveAction = {
    kind: 'session';
    sessionId: string;
} | {
    kind: 'context';
    patch: Record<string, string>;
} | {
    kind: 'next';
    call: JsonRpcRequest;
} | {
    kind: 'end';
} | {
    kind: 'hint';
    text: string;
};
export interface ParsedDirectives {
    /** Texte original sans les directives (propre, pour le client) */
    cleanText: string;
    /** Directives extraites, dans l'ordre */
    actions: DirectiveAction[];
    /** Erreurs de parsing (lignes mal formées, ignorées mais loguées) */
    errors: string[];
}
export interface DirectiveParserOptions {
    /** Logger */
    logger?: BridgeLogger;
}
export declare class DirectiveParser {
    private readonly log;
    constructor(opts?: DirectiveParserOptions);
    /**
     * Parse un texte de réponse d'agent et extrait les directives.
     * Lignes de directive : `DIRECTIVE_NAME: value`.
     */
    parse(responseText: string): ParsedDirectives;
    /**
     * Parse une directive individuelle. Retourne null si nom inconnu.
     */
    private parseDirective;
}
/**
 * Parse un format "key=value key2='value with spaces' key3="value with quotes"".
 * Supporte quotes simples, doubles, et backslash escape.
 */
export declare function parseKeyValueArgs(input: string): Record<string, string>;
//# sourceMappingURL=DirectiveParser.d.ts.map