import type { AdapterContext, ChatEnvelope } from "../../../../types/chat-envelope.js";
import type { FormatEnvelope } from "../../../../types/format-envelope.js";
import { type JsonObject } from "../../../../types/json.js";
import type { SemanticMapper, StageRecorder } from "../../../../format-adapters/index.js";
import type { StandardizedRequest } from "../../../../types/standardized.js";
export interface ReqInboundStage2SemanticMapOptions {
    adapterContext: AdapterContext;
    formatEnvelope: FormatEnvelope<JsonObject>;
    semanticMapper: Pick<SemanticMapper, "toChat">;
    /**
     * Mappable cross-protocol semantics (e.g. /v1/responses submit resume) must be
     * lifted into chat semantics before entering chat_process.
     *
     * This must never be stored in metadata/AdapterContext.
     */
    responsesResume?: JsonObject;
    stageRecorder?: StageRecorder;
}
export interface ReqInboundStage2SemanticMapResult {
    chatEnvelope: ChatEnvelope;
    standardizedRequest: StandardizedRequest;
    responsesContext?: JsonObject;
}
export declare function runReqInboundStage2SemanticMap(options: ReqInboundStage2SemanticMapOptions): Promise<ReqInboundStage2SemanticMapResult>;
