/**
 * AgentQuestionExecutorBridge
 *
 * Concrete {@link AgentQuestionBridge} that wires the SDK V2
 * `canUseTool` callback for `AskUserQuestion` to the unified
 * agent-question pipeline (spec 093, task 19).
 *
 * Behavior:
 *  - With `featureFlags.collaboration` ON, persists ONE
 *    {@link AgentQuestion} of kind `blocking` whose `prompt` carries the
 *    JSON-encoded array of `UserQuestion`s. Awaits the registered
 *    Deferred entry until {@link AnswerAgentQuestionUseCase} settles it,
 *    then converts the answer string back into the SDK-expected
 *    `Record<question, answer>` map.
 *  - With the flag OFF, returns `null` so the executor falls through to
 *    the legacy `onUserQuestion` path (NFR-14 byte-identical default).
 *
 * Answer encoding: the answer string is expected to be a JSON object
 * keyed by question text. If the caller answers with a plain string and
 * there is exactly one question, it is mapped to that single question
 * for ergonomics.
 *
 * Cancellation: when the awaiter rejects (timeout / cancel), the bridge
 * propagates the rejection so the SDK callback fails-fast — the SDK
 * surfaces this as an error in the conversation, which is the desired
 * behavior for a cancelled blocking question.
 */
import type { AgentQuestionBridge, UserQuestion } from '../../../../application/ports/output/agents/interactive-agent-executor.interface.js';
import type { AskAgentQuestionUseCase } from '../../../../application/use-cases/agents/ask-agent-question.use-case.js';
/** Scope passed to AskAgentQuestion when the bridge is used. */
export interface AgentQuestionExecutorBridgeScope {
    appId: string;
    featureId?: string;
    agentRunId: string;
}
export declare class AgentQuestionExecutorBridge implements AgentQuestionBridge {
    private readonly askAgentQuestion;
    private readonly scope;
    constructor(askAgentQuestion: AskAgentQuestionUseCase, scope: AgentQuestionExecutorBridgeScope);
    ask(args: {
        toolCallId: string;
        questions: UserQuestion[];
    }): Promise<Record<string, string> | null>;
}
//# sourceMappingURL=agent-question-executor-bridge.d.ts.map