
import { ExtensionsResponse } from "../graphql/types/extensions-response.type.cjs";
import { Message } from "../graphql/types/converted/index.cjs";
import { RuntimeEventSource } from "./events.cjs";
import { ActionInput } from "../graphql/inputs/action.input.cjs";
import { ForwardedParametersInput } from "../graphql/inputs/forwarded-parameters.input.cjs";
import { ExtensionsInput } from "../graphql/inputs/extensions.input.cjs";
import { AgentSessionInput } from "../graphql/inputs/agent-session.input.cjs";
import { AgentStateInput } from "../graphql/inputs/agent-state.input.cjs";
import { LanguageModel } from "ai";

//#region src/service-adapters/service-adapter.d.ts
interface CopilotRuntimeChatCompletionRequest {
  eventSource: RuntimeEventSource;
  messages: Message[];
  actions: ActionInput[];
  model?: string;
  threadId?: string;
  runId?: string;
  forwardedParameters?: ForwardedParametersInput;
  extensions?: ExtensionsInput;
  agentSession?: AgentSessionInput;
  agentStates?: AgentStateInput[];
}
interface CopilotRuntimeChatCompletionResponse {
  threadId: string;
  runId?: string;
  extensions?: ExtensionsResponse;
}
interface CopilotServiceAdapter {
  provider?: string;
  model?: string;
  process(request: CopilotRuntimeChatCompletionRequest): Promise<CopilotRuntimeChatCompletionResponse>;
  name?: string;
  /**
   * Returns a pre-configured LanguageModel for use with BuiltInAgent.
   * Adapters that support custom provider configurations (e.g., Azure OpenAI
   * with custom baseURL/apiKey) should implement this to ensure the
   * configuration is propagated to the agent layer.
   */
  getLanguageModel?(): LanguageModel;
}
//#endregion
export { CopilotRuntimeChatCompletionRequest, CopilotRuntimeChatCompletionResponse, CopilotServiceAdapter };
//# sourceMappingURL=service-adapter.d.cts.map