/** * @fileoverview Defines the core logic, schemas, and types for the `perplexity_research` tool. * This tool interfaces with the Perplexity API to perform exhaustive multi-source research using the sonar-deep-research model. * @module src/mcp-server/tools/perplexityDeepResearch/logic */ import { z } from 'zod'; import { RequestContext } from '../../../utils/index.js'; export declare const PerplexityDeepResearchInputSchema: z.ZodObject<{ query: z.ZodString; reasoning_effort: z.ZodDefault>>; return_related_questions: z.ZodDefault>; search_recency_filter: z.ZodOptional; search_domain_filter: z.ZodOptional>; search_after_date_filter: z.ZodOptional; search_before_date_filter: z.ZodOptional; search_mode: z.ZodOptional>; }, "strip", z.ZodTypeAny, { return_related_questions: boolean; reasoning_effort: "low" | "medium" | "high"; query: string; search_domain_filter?: string[] | undefined; search_recency_filter?: string | undefined; search_after_date_filter?: string | undefined; search_before_date_filter?: string | undefined; search_mode?: "web" | "academic" | undefined; }, { query: string; search_domain_filter?: string[] | undefined; search_recency_filter?: string | undefined; search_after_date_filter?: string | undefined; search_before_date_filter?: string | undefined; return_related_questions?: boolean | undefined; search_mode?: "web" | "academic" | undefined; reasoning_effort?: "low" | "medium" | "high" | undefined; }>; declare const SearchResultSchema: z.ZodObject<{ title: z.ZodString; url: z.ZodString; date: z.ZodOptional>; last_updated: z.ZodOptional>; snippet: z.ZodOptional; }, "strip", z.ZodTypeAny, { url: string; title: string; date?: string | null | undefined; last_updated?: string | null | undefined; snippet?: string | undefined; }, { url: string; title: string; date?: string | null | undefined; last_updated?: string | null | undefined; snippet?: string | undefined; }>; declare const CostBreakdownSchema: z.ZodObject<{ input_tokens_cost: z.ZodNumber; output_tokens_cost: z.ZodNumber; citation_tokens_cost: z.ZodNumber; reasoning_tokens_cost: z.ZodNumber; search_queries_cost: z.ZodNumber; total_cost: z.ZodNumber; }, "strip", z.ZodTypeAny, { input_tokens_cost: number; output_tokens_cost: number; citation_tokens_cost: number; reasoning_tokens_cost: number; search_queries_cost: number; total_cost: number; }, { input_tokens_cost: number; output_tokens_cost: number; citation_tokens_cost: number; reasoning_tokens_cost: number; search_queries_cost: number; total_cost: number; }>; export declare const PerplexityDeepResearchResponseSchema: z.ZodObject<{ rawResultText: z.ZodString; responseId: z.ZodString; modelUsed: z.ZodString; createdTimestamp: z.ZodNumber; usage: z.ZodObject<{ prompt_tokens: z.ZodNumber; completion_tokens: z.ZodNumber; total_tokens: z.ZodNumber; citation_tokens: z.ZodOptional; reasoning_tokens: z.ZodOptional; num_search_queries: z.ZodOptional; }, "strip", z.ZodTypeAny, { prompt_tokens: number; completion_tokens: number; total_tokens: number; citation_tokens?: number | undefined; num_search_queries?: number | undefined; reasoning_tokens?: number | undefined; }, { prompt_tokens: number; completion_tokens: number; total_tokens: number; citation_tokens?: number | undefined; num_search_queries?: number | undefined; reasoning_tokens?: number | undefined; }>; costBreakdown: z.ZodOptional>; searchResults: z.ZodOptional>; last_updated: z.ZodOptional>; snippet: z.ZodOptional; }, "strip", z.ZodTypeAny, { url: string; title: string; date?: string | null | undefined; last_updated?: string | null | undefined; snippet?: string | undefined; }, { url: string; title: string; date?: string | null | undefined; last_updated?: string | null | undefined; snippet?: string | undefined; }>, "many">>; citations: z.ZodOptional>; estimatedCost: z.ZodOptional; }, "strip", z.ZodTypeAny, { usage: { prompt_tokens: number; completion_tokens: number; total_tokens: number; citation_tokens?: number | undefined; num_search_queries?: number | undefined; reasoning_tokens?: number | undefined; }; responseId: string; rawResultText: string; modelUsed: string; createdTimestamp: number; estimatedCost?: number | undefined; citations?: string[] | undefined; searchResults?: { url: string; title: string; date?: string | null | undefined; last_updated?: string | null | undefined; snippet?: string | undefined; }[] | undefined; costBreakdown?: { input_tokens_cost: number; output_tokens_cost: number; citation_tokens_cost: number; reasoning_tokens_cost: number; search_queries_cost: number; total_cost: number; } | undefined; }, { usage: { prompt_tokens: number; completion_tokens: number; total_tokens: number; citation_tokens?: number | undefined; num_search_queries?: number | undefined; reasoning_tokens?: number | undefined; }; responseId: string; rawResultText: string; modelUsed: string; createdTimestamp: number; estimatedCost?: number | undefined; citations?: string[] | undefined; searchResults?: { url: string; title: string; date?: string | null | undefined; last_updated?: string | null | undefined; snippet?: string | undefined; }[] | undefined; costBreakdown?: { input_tokens_cost: number; output_tokens_cost: number; citation_tokens_cost: number; reasoning_tokens_cost: number; search_queries_cost: number; total_cost: number; } | undefined; }>; export type PerplexityDeepResearchInput = z.infer; export type PerplexityDeepResearchResponse = z.infer; export type SearchResult = z.infer; export type CostBreakdown = z.infer; /** * 3. IMPLEMENT and export the core logic function. * It must remain pure: its only concerns are its inputs and its return value or thrown error. * @throws {McpError} If the logic encounters an unrecoverable issue. */ export declare function perplexityDeepResearchLogic(params: PerplexityDeepResearchInput, context: RequestContext): Promise; export {};