UNPKG

@superadnim/osint-mcp-server

Version:

Professional OSINT MCP Server for intelligence gathering with privacy protection

85 lines 3.52 kB
import { AxiosInstance, AxiosRequestConfig } from 'axios'; import { DataSource, RateLimitConfig } from '../types/osint-types.js'; import { RateLimiter } from '../utils/rate-limiter.js'; import { CacheManager } from '../utils/cache-manager.js'; import { Logger } from '../utils/logger.js'; export declare abstract class BaseDataSource implements DataSource { abstract id: string; abstract name: string; abstract type: 'people' | 'phone' | 'email' | 'domain' | 'social' | 'vehicle' | 'address'; abstract tier: 1 | 2 | 3; abstract rateLimit: RateLimitConfig; abstract baseUrl: string; abstract endpoints: any[]; protected httpClient: AxiosInstance; protected rateLimiter: RateLimiter; protected cache: CacheManager; protected logger: Logger; apiKey?: string; constructor(rateLimiter: RateLimiter, cache: CacheManager, logger: Logger, apiKey?: string); protected initializeSource(): void; private setupRateLimiting; private setupResponseInterceptors; protected makeRequest<T>(config: AxiosRequestConfig, cacheKey?: string, cacheTTL?: number): Promise<T>; abstract search(query: string, options?: Record<string, unknown>): Promise<unknown>; protected generateCacheKey(method: string, params: Record<string, unknown>): string; isAvailable(): boolean; getUsageStats(): Promise<{ queued: number; running: number; }>; } export declare class GoogleSearchDataSource extends BaseDataSource { id: string; name: string; type: "domain"; tier: 1; baseUrl: string; rateLimit: RateLimitConfig; endpoints: never[]; constructor(rateLimiter: RateLimiter, cache: CacheManager, logger: Logger, apiKey?: string); search(query: string, options?: Record<string, unknown>): Promise<unknown>; } export declare class PeopleSearchDataSource extends BaseDataSource { id: string; name: string; type: "people"; tier: 2; baseUrl: string; rateLimit: RateLimitConfig; endpoints: never[]; constructor(rateLimiter: RateLimiter, cache: CacheManager, logger: Logger, apiKey?: string); search(query: string, options?: Record<string, unknown>): Promise<unknown>; } export declare class PhoneLookupDataSource extends BaseDataSource { id: string; name: string; type: "phone"; tier: 2; baseUrl: string; rateLimit: RateLimitConfig; endpoints: never[]; constructor(rateLimiter: RateLimiter, cache: CacheManager, logger: Logger, apiKey?: string); search(query: string, options?: Record<string, unknown>): Promise<unknown>; } export declare class EmailLookupDataSource extends BaseDataSource { id: string; name: string; type: "email"; tier: 2; baseUrl: string; rateLimit: RateLimitConfig; endpoints: never[]; constructor(rateLimiter: RateLimiter, cache: CacheManager, logger: Logger, apiKey?: string); search(query: string, options?: Record<string, unknown>): Promise<unknown>; } export declare class DataSourceManager { private sources; private logger; constructor(rateLimiter: RateLimiter, cache: CacheManager, logger: Logger, apiKeys: Record<string, string>); getSource(sourceId: string): BaseDataSource | undefined; getSourcesByType(type: BaseDataSource['type']): BaseDataSource[]; getAvailableSources(): BaseDataSource[]; searchAcrossSources(type: BaseDataSource['type'], query: string, options?: Record<string, unknown>): Promise<unknown[]>; } //# sourceMappingURL=data-sources.d.ts.map