import type { ChatEnvelope, AdapterContext } from '../types/chat-envelope.js';
import type { FormatAdapter, SemanticMapper, StageRecorder } from '../format-adapters/index.js';
import type { JsonObject } from '../types/json.js';
export type InboundStage = 'format_parse' | 'semantic_map_to_chat' | 'inbound_passthrough';
export interface InboundPassthroughConfig {
    mode: 'chat';
    factory: (raw: JsonObject, ctx: AdapterContext) => Promise<ChatEnvelope> | ChatEnvelope;
}
export interface InboundPlan {
    protocol?: string;
    stages: InboundStage[];
    formatAdapter?: Pick<FormatAdapter, 'parseRequest'>;
    semanticMapper?: Pick<SemanticMapper, 'toChat'>;
    passthrough?: InboundPassthroughConfig;
}
export interface InboundPipelineOptions {
    rawRequest: JsonObject;
    context: AdapterContext;
    plan: InboundPlan;
    stageRecorder?: StageRecorder;
}
export declare function runInboundPipeline(options: InboundPipelineOptions): Promise<ChatEnvelope>;
