import { ChatXAIResponsesCallOptions, ChatXAIResponsesInput, ChatXAIResponsesInvocationParams, XAIResponse, XAIResponsesCreateParams, XAIResponsesCreateParamsNonStreaming, XAIResponsesCreateParamsStreaming, XAIResponsesReasoning, XAIResponsesSearchParameters, XAIResponsesStreamEvent, XAIResponsesTool } from "./responses-types.js";
import { BaseChatModel, LangSmithParams } from "@langchain/core/language_models/chat_models";
import { BaseMessage } from "@langchain/core/messages";
import { ChatGenerationChunk, ChatResult } from "@langchain/core/outputs";
import { Serialized } from "@langchain/core/load/serializable";
import { CallbackManagerForLLMRun } from "@langchain/core/callbacks/manager";

//#region src/chat_models/responses.d.ts

/**
 * xAI Responses API chat model integration.
 *
 * This class provides access to xAI's Responses API, which offers enhanced
 * capabilities including built-in tools, reasoning, and search.
 *
 * @example
 * ```typescript
 * import { ChatXAIResponses } from "@langchain/xai";
 *
 * const llm = new ChatXAIResponses({
 *   model: "grok-3",
 *   temperature: 0.7,
 * });
 *
 * const result = await llm.invoke("What is the capital of France?");
 * console.log(result.content);
 * ```
 */
declare class ChatXAIResponses<CallOptions extends ChatXAIResponsesCallOptions = ChatXAIResponsesCallOptions> extends BaseChatModel<CallOptions> {
  static lc_name(): string;
  lc_serializable: boolean;
  lc_namespace: string[];
  get lc_secrets(): {
    [key: string]: string;
  } | undefined;
  get lc_aliases(): {
    [key: string]: string;
  } | undefined;
  apiKey: string;
  model: string;
  streaming: boolean;
  temperature?: number;
  topP?: number;
  maxOutputTokens?: number;
  store?: boolean;
  user?: string;
  baseURL: string;
  searchParameters?: XAIResponsesSearchParameters;
  reasoning?: XAIResponsesReasoning;
  tools?: XAIResponsesTool[];
  constructor(fields?: ChatXAIResponsesInput);
  _llmType(): string;
  getLsParams(options: this["ParsedCallOptions"]): LangSmithParams;
  toJSON(): Serialized;
  invocationParams(options?: this["ParsedCallOptions"]): ChatXAIResponsesInvocationParams;
  /**
   * Makes a request to the xAI Responses API.
   */
  protected _makeRequest(request: XAIResponsesCreateParamsNonStreaming): Promise<XAIResponse>;
  protected _makeRequest(request: XAIResponsesCreateParamsStreaming): Promise<AsyncIterable<XAIResponsesStreamEvent>>;
  /**
   * Makes a streaming request to the xAI Responses API.
   */
  protected _makeStreamingRequest(url: string, headers: Record<string, string>, request: XAIResponsesCreateParams): AsyncIterable<XAIResponsesStreamEvent>;
  _generate(messages: BaseMessage[], options: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
  _streamResponseChunks(messages: BaseMessage[], options: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;
}
//#endregion
export { ChatXAIResponses };
//# sourceMappingURL=responses.d.ts.map