#!/usr/bin/env node import { Server } from '@modelcontextprotocol/sdk/server/index.js'; declare const DOMAINS: { readonly cz: "https://www.bazos.cz"; readonly sk: "https://www.bazos.sk"; readonly at: "https://www.bazos.at"; readonly pl: "https://www.bazos.pl"; }; type Domain = keyof typeof DOMAINS; declare const SECTIONS: { readonly AU: "Auto"; readonly DE: "Deti"; readonly DU: "Dum a Zahrada"; readonly EL: "Elektro"; readonly FO: "Foto"; readonly HU: "Hudba"; readonly KN: "Knihy"; readonly MO: "Mobily"; readonly MT: "Motorky"; readonly NA: "Nabytek"; readonly OB: "Obleceni"; readonly PC: "PC"; readonly PR: "Prace"; readonly RE: "Reality"; readonly SL: "Sluzby"; readonly SP: "Sport"; readonly ST: "Stroje"; readonly VS: "Vstupenky"; readonly ZV: "Zvirata"; readonly OS: "Ostatni"; }; type SectionCode = keyof typeof SECTIONS; declare const SORT_TYPES: readonly ["date", "price_asc", "price_desc", "distance"]; type SortType = (typeof SORT_TYPES)[number]; declare const DEFAULTS: { readonly offset: 0; readonly limit: 20; readonly sort: SortType; readonly minDelayMs: 900; readonly maxJitterMs: 400; }; declare const LIMITS: { readonly maxLimit: 200; readonly limitIncrement: 20; readonly maxOffset: 200; readonly offsetIncrement: 20; }; interface Ad { id: string; from: string; title: string; price_formatted: string; currency: string; image_thumbnail: string; locality: string; topped: string; image_thumbnail_width: string; image_thumbnail_height: string; favourite: string; url: string; views: string; } interface Category { id: string; title: string; url: string; } interface Section { id: string; title: string; url: string; image: string; } interface AdDetail { id: string; from: string; status: string; topped: boolean; title: string; description: string; price_formatted: string; currency: string; price: string; price_type: string; name: string; phone: string; phone_id: string; email_id: string; zip_code: string; locality: string; latitude: string; longitude: string; category: Category; url: string; top_possible: string; top_total: string; top_limit: string; topped_for_days: string; action_possible: string; views: string; section: Section; images: string[]; image_thumbnail: string; image_thumbnail_width?: string; image_thumbnail_height?: string; favourite?: string; user_ads_count?: string; user_reviews_count?: string; } interface UserRating { [key: string]: unknown; } interface SearchParams { offset?: number; limit?: number; section?: SectionCode; query?: string; price_from?: number; price_to?: number; sort?: SortType; latitude?: number; longitude?: number; phone?: string; email?: string; } declare class BazosClient { private readonly rateLimiter; constructor(); private fetchJson; getBaseUrl(domain: Domain): string; searchAds(domain: Domain, params: SearchParams): Promise; getAdDetail(domain: Domain, adId: string): Promise; getUserRatings(domain: Domain, params: SearchParams): Promise; } declare function createServer(): Server; declare function startServer(): Promise; interface UserAgentResult { userAgent: string; deviceId: string; } declare function generateUserAgent(): UserAgentResult; interface RateLimiterOptions { minDelayMs: number; maxJitterMs: number; } declare class RateLimiter { private lastRequestTime; private readonly minDelayMs; private readonly maxJitterMs; constructor(options: RateLimiterOptions); private calculateDelay; throttle(): Promise; } declare function buildSearchUrl(baseUrl: string, path: string, params: SearchParams): string; declare function buildAdDetailUrl(baseUrl: string, adId: string): string; declare function validateOffset(value: number): number; declare function validateLimit(value: number): number; declare function isValidSection(section: string): section is SectionCode; declare function isValidSort(sort: string): sort is SortType; export { type Ad, type AdDetail, BazosClient, DEFAULTS, DOMAINS, type Domain, LIMITS, RateLimiter, SECTIONS, SORT_TYPES, type SearchParams, type SectionCode, type SortType, type UserRating, buildAdDetailUrl, buildSearchUrl, createServer, generateUserAgent, isValidSection, isValidSort, startServer, validateLimit, validateOffset };