import type { AdapterContext } from '../../../../types/chat-envelope.js';
import type { JsonObject } from '../../../../types/json.js';
import type { StageRecorder } from '../../../../format-adapters/index.js';
import type { ChatCompletionLike } from '../../../../response/response-mappers.js';
import type { ProviderInvoker } from '../../../../../../servertool/types.js';
type ProviderProtocol = 'openai-chat' | 'openai-responses' | 'anthropic-messages' | 'gemini-chat';
type ReenterPipeline = (options: {
    entryEndpoint: string;
    requestId: string;
    body: JsonObject;
    metadata?: JsonObject;
}) => Promise<{
    body?: JsonObject;
    __sse_responses?: NodeJS.ReadableStream;
    format?: string;
}>;
type ClientInjectDispatch = (options: {
    entryEndpoint: string;
    requestId: string;
    body?: JsonObject;
    metadata?: JsonObject;
}) => Promise<{
    ok: boolean;
    reason?: string;
}>;
export interface RespProcessStage3ServerToolOrchestrationOptions {
    payload: ChatCompletionLike;
    adapterContext: AdapterContext;
    requestId: string;
    entryEndpoint: string;
    providerProtocol: ProviderProtocol;
    stageRecorder?: StageRecorder;
    providerInvoker?: ProviderInvoker;
    reenterPipeline?: ReenterPipeline;
    clientInjectDispatch?: ClientInjectDispatch;
}
export interface RespProcessStage3ServerToolOrchestrationResult {
    payload: ChatCompletionLike;
    executed: boolean;
    flowId?: string;
    skipReason?: 'no_servertool_support';
}
export declare function runRespProcessStage3ServerToolOrchestration(options: RespProcessStage3ServerToolOrchestrationOptions): Promise<RespProcessStage3ServerToolOrchestrationResult>;
export {};
