/** * MCP Tool implementations */ import { z } from 'zod'; import { RedditAPI } from '../services/reddit-api.js'; export declare const browseSubredditSchema: z.ZodObject<{ subreddit: z.ZodEffects, string, string>; sort: z.ZodDefault>>; time: z.ZodOptional>; limit: z.ZodDefault>; include_nsfw: z.ZodDefault>; include_subreddit_info: z.ZodDefault>; }, "strip", z.ZodTypeAny, { sort: "hot" | "new" | "top" | "rising" | "controversial"; limit: number; subreddit: string; include_nsfw: boolean; include_subreddit_info: boolean; time?: "hour" | "day" | "week" | "month" | "year" | "all" | undefined; }, { subreddit: string; sort?: "hot" | "new" | "top" | "rising" | "controversial" | undefined; limit?: number | undefined; time?: "hour" | "day" | "week" | "month" | "year" | "all" | undefined; include_nsfw?: boolean | undefined; include_subreddit_info?: boolean | undefined; }>; export declare const searchRedditSchema: z.ZodObject<{ query: z.ZodString; subreddits: z.ZodOptional, string, string>, "many">>; sort: z.ZodDefault>>; time: z.ZodDefault>>; limit: z.ZodDefault>; author: z.ZodOptional; flair: z.ZodOptional; }, "strip", z.ZodTypeAny, { sort: "hot" | "new" | "top" | "relevance" | "comments"; limit: number; time: "hour" | "day" | "week" | "month" | "year" | "all"; query: string; subreddits?: string[] | undefined; author?: string | undefined; flair?: string | undefined; }, { query: string; sort?: "hot" | "new" | "top" | "relevance" | "comments" | undefined; limit?: number | undefined; time?: "hour" | "day" | "week" | "month" | "year" | "all" | undefined; subreddits?: string[] | undefined; author?: string | undefined; flair?: string | undefined; }>; export declare const getPostDetailsSchema: z.ZodObject<{ post_id: z.ZodOptional, string, string>>; subreddit: z.ZodOptional, string, string>>; url: z.ZodOptional; comment_limit: z.ZodDefault>; comment_sort: z.ZodDefault>>; comment_depth: z.ZodDefault>; extract_links: z.ZodDefault>; max_top_comments: z.ZodDefault>; }, "strip", z.ZodTypeAny, { comment_limit: number; comment_sort: "new" | "top" | "controversial" | "best" | "qa"; comment_depth: number; extract_links: boolean; max_top_comments: number; subreddit?: string | undefined; post_id?: string | undefined; url?: string | undefined; }, { subreddit?: string | undefined; post_id?: string | undefined; url?: string | undefined; comment_limit?: number | undefined; comment_sort?: "new" | "top" | "controversial" | "best" | "qa" | undefined; comment_depth?: number | undefined; extract_links?: boolean | undefined; max_top_comments?: number | undefined; }>; export declare const userAnalysisSchema: z.ZodObject<{ username: z.ZodEffects, string, string>; posts_limit: z.ZodDefault>; comments_limit: z.ZodDefault>; time_range: z.ZodDefault>>; top_subreddits_limit: z.ZodDefault>; }, "strip", z.ZodTypeAny, { username: string; posts_limit: number; comments_limit: number; time_range: "day" | "week" | "month" | "year" | "all"; top_subreddits_limit: number; }, { username: string; posts_limit?: number | undefined; comments_limit?: number | undefined; time_range?: "day" | "week" | "month" | "year" | "all" | undefined; top_subreddits_limit?: number | undefined; }>; export declare const redditExplainSchema: z.ZodObject<{ term: z.ZodString; }, "strip", z.ZodTypeAny, { term: string; }, { term: string; }>; /** * Tool implementations */ export declare class RedditTools { private api; constructor(api: RedditAPI); browseSubreddit(params: z.infer): Promise; searchReddit(params: z.infer): Promise; getPostDetails(params: z.infer): Promise; userAnalysis(params: z.infer): Promise; redditExplain(params: z.infer): Promise<{ definition: any; origin: any; usage: any; examples: any; relatedTerms: never[]; }>; /** * Extract post ID and subreddit from various Reddit URL formats * Supports: * - www.reddit.com/r/subreddit/comments/postid/... * - old.reddit.com/r/subreddit/comments/postid/... * - np.reddit.com/r/subreddit/comments/postid/... (No Participation) * - m.reddit.com/r/subreddit/comments/postid/... (Mobile) * - reddit.com/r/subreddit/comments/postid/... * - redd.it/postid (short URL - subreddit unknown) * - URLs with query parameters (?utm_source=...) * - URLs with fragments (#comment) */ private extractPostIdFromUrl; } //# sourceMappingURL=index.d.ts.map