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

//#region src/gemini-interactions.d.ts

interface InteractionsContentBlock {
  type: string;
  text?: string;
  name?: string;
  call_id?: string;
  id?: string;
  arguments?: Record<string, unknown>;
  output?: unknown;
  result?: unknown;
}
interface InteractionsTurn {
  role: string;
  content?: InteractionsContentBlock[];
  parts?: InteractionsContentBlock[];
}
interface InteractionsFunctionTool {
  type: "function";
  name: string;
  description?: string;
  parameters?: object;
}
interface InteractionsRequest {
  model?: string;
  input?: string | InteractionsTurn[] | InteractionsContentBlock[];
  system_instruction?: string;
  tools?: InteractionsFunctionTool[];
  generation_config?: {
    temperature?: number;
    max_output_tokens?: number;
    [key: string]: unknown;
  };
  stream?: boolean;
  previous_interaction_id?: string;
  [key: string]: unknown;
}
declare function geminiInteractionsToCompletionRequest(req: InteractionsRequest): ChatCompletionRequest;
declare function handleGeminiInteractions(req: http$1.IncomingMessage, res: http$1.ServerResponse, raw: string, fixtures: Fixture[], journal: Journal, defaults: HandlerDefaults, setCorsHeaders: (res: http$1.ServerResponse) => void): Promise<void>;
//#endregion
export { geminiInteractionsToCompletionRequest, handleGeminiInteractions };
//# sourceMappingURL=gemini-interactions.d.ts.map