import { Tool } from "@langchain/core/tools";

//#region src/tools/wikipedia_query_run.d.ts
/**
 * Interface for the parameters that can be passed to the
 * WikipediaQueryRun constructor.
 */
interface WikipediaQueryRunParams {
  topKResults?: number;
  maxDocContentLength?: number;
  baseUrl?: string;
}
/**
 * Type alias for URL parameters. Represents a record where keys are
 * strings and values can be string, number, boolean, undefined, or null.
 */
type UrlParameters = Record<string, string | number | boolean | undefined | null>;
/**
 * Wikipedia query tool integration.
 *
 * Setup:
 * Install `@langchain/community`. You'll also need an API key.
 *
 * ```bash
 * npm install @langchain/community
 * ```
 *
 * ## [Constructor args](https://api.js.langchain.com/classes/_langchain_community.tools_wikipedia_query_run.WikipediaQueryRun.html#constructor)
 *
 * <details open>
 * <summary><strong>Instantiate</strong></summary>
 *
 * ```typescript
 * import { WikipediaQueryRun } from "@langchain/community/tools/wikipedia_query_run";
 *
 * const tool = new WikipediaQueryRun({
 *   topKResults: 3,
 *   maxDocContentLength: 4000,
 * });
 * ```
 * </details>
 *
 * <br />
 *
 * <details>
 *
 * <summary><strong>Invocation</strong></summary>
 *
 * ```typescript
 * await tool.invoke("what is the current weather in sf?");
 * ```
 * </details>
 *
 * <br />
 *
 * <details>
 *
 * <summary><strong>Invocation with tool call</strong></summary>
 *
 * ```typescript
 * // This is usually generated by a model, but we'll create a tool call directly for demo purposes.
 * const modelGeneratedToolCall = {
 *   args: {
 *     input: "what is the current weather in sf?",
 *   },
 *   id: "tool_call_id",
 *   name: tool.name,
 *   type: "tool_call",
 * };
 * await tool.invoke(modelGeneratedToolCall);
 * ```
 *
 * ```text
 * ToolMessage {
 *   "content": "...",
 *   "name": "wikipedia-api",
 *   "additional_kwargs": {},
 *   "response_metadata": {},
 *   "tool_call_id": "tool_call_id"
 * }
 * ```
 * </details>
 */
declare class WikipediaQueryRun extends Tool {
  static lc_name(): string;
  name: string;
  description: string;
  protected topKResults: number;
  protected maxDocContentLength: number;
  protected baseUrl: string;
  constructor(params?: WikipediaQueryRunParams);
  _call(query: string): Promise<string>;
  /**
   * Fetches the content of a specific Wikipedia page. It returns the
   * extracted content as a string.
   * @param page The specific Wikipedia page to fetch its content.
   * @param redirect A boolean value to indicate whether to redirect or not.
   * @returns The extracted content of the specific Wikipedia page as a string.
   */
  content(page: string, redirect?: boolean): Promise<string>;
  /**
   * Builds a URL for the Wikipedia API using the provided parameters.
   * @param parameters The parameters to be used in building the URL.
   * @returns A string representing the built URL.
   */
  protected buildUrl<P extends UrlParameters>(parameters: P): string;
  private _fetchSearchResults;
  private _fetchPage;
}
//#endregion
export { WikipediaQueryRun, WikipediaQueryRunParams };
//# sourceMappingURL=wikipedia_query_run.d.cts.map