
import { CopilotRuntimeChatCompletionRequest, CopilotRuntimeChatCompletionResponse, CopilotServiceAdapter } from "../service-adapter.cjs";
import { LanguageModel } from "ai";
import OpenAI from "openai";

//#region src/service-adapters/openai/openai-adapter.d.ts
interface OpenAIAdapterParams {
  /**
   * An optional OpenAI instance to use.  If not provided, a new instance will be
   * created.
   */
  openai?: OpenAI;
  /**
   * The model to use.
   */
  model?: string;
  /**
   * Whether to disable parallel tool calls.
   * You can disable parallel tool calls to force the model to execute tool calls sequentially.
   * This is useful if you want to execute tool calls in a specific order so that the state changes
   * introduced by one tool call are visible to the next tool call. (i.e. new actions or readables)
   *
   * @default false
   */
  disableParallelToolCalls?: boolean;
  /**
   * Whether to keep the role in system messages as "System".
   * By default, it is converted to "developer", which is used by newer OpenAI models
   *
   * @default false
   */
  keepSystemRole?: boolean;
  /**
   * Optional maximum input token limit. Overrides the default model-based limit
   * used when trimming messages to fit the context window.
   */
  maxInputTokens?: number;
}
declare class OpenAIAdapter implements CopilotServiceAdapter {
  model: string;
  provider: string;
  private disableParallelToolCalls;
  private _openai;
  private keepSystemRole;
  private maxInputTokens?;
  get openai(): OpenAI;
  get name(): string;
  constructor(params?: OpenAIAdapterParams);
  getLanguageModel(): LanguageModel;
  private ensureOpenAI;
  process(request: CopilotRuntimeChatCompletionRequest): Promise<CopilotRuntimeChatCompletionResponse>;
}
//#endregion
export { OpenAIAdapter, OpenAIAdapterParams };
//# sourceMappingURL=openai-adapter.d.cts.map