import { Journal } from "./journal.cjs";
import { Logger } from "./logger.cjs";
import { ChatCompletionRequest, Fixture, HandlerDefaults } from "./types.cjs";
import * as http$1 from "node:http";

//#region src/bedrock-converse.d.ts

interface ConverseContentBlock {
  text?: string;
  toolUse?: {
    toolUseId: string;
    name: string;
    input: object;
  };
  toolResult?: {
    toolUseId: string;
    content: {
      text?: string;
    }[];
  };
}
interface ConverseMessage {
  role: "user" | "assistant";
  content: ConverseContentBlock[];
}
interface ConverseToolSpec {
  name: string;
  description?: string;
  inputSchema?: object;
}
interface ConverseRequest {
  messages: ConverseMessage[];
  system?: {
    text: string;
  }[];
  inferenceConfig?: {
    maxTokens?: number;
    temperature?: number;
  };
  toolConfig?: {
    tools: {
      toolSpec: ConverseToolSpec;
    }[];
  };
}
declare function converseToCompletionRequest(req: ConverseRequest, modelId: string, logger?: Logger): ChatCompletionRequest;
declare function handleConverse(req: http$1.IncomingMessage, res: http$1.ServerResponse, raw: string, modelId: string, fixtures: Fixture[], journal: Journal, defaults: HandlerDefaults, setCorsHeaders: (res: http$1.ServerResponse) => void): Promise<void>;
declare function handleConverseStream(req: http$1.IncomingMessage, res: http$1.ServerResponse, raw: string, modelId: string, fixtures: Fixture[], journal: Journal, defaults: HandlerDefaults, setCorsHeaders: (res: http$1.ServerResponse) => void): Promise<void>;
//#endregion
export { converseToCompletionRequest, handleConverse, handleConverseStream };
//# sourceMappingURL=bedrock-converse.d.cts.map