import type { CacheManager } from '../../infrastructure/cache'; import type { BootstrapDiscovery, Normalizer } from '../../infrastructure/http'; import type { IFetcherPort } from '../../core/ports'; import type { RateLimiter } from '../../infrastructure/http/RateLimiter'; import type { PIIRedactor } from '../../infrastructure/security'; import type { MetricsCollector } from '../../infrastructure/monitoring/MetricsCollector'; import type { Logger } from '../../infrastructure/logging/Logger'; import type { DomainResponse, IPResponse, ASNResponse, NameserverResponse, EntityResponse } from '../../shared/types'; import type { MiddlewareManager } from '../hooks/MiddlewareHooks'; import type { QueryDeduplicator } from '../deduplication/QueryDeduplicator'; export interface QueryOrchestratorConfig { cache: CacheManager; bootstrap: BootstrapDiscovery; fetcher: IFetcherPort; normalizer: Normalizer; piiRedactor: PIIRedactor; includeRaw: boolean; fetchWithRetry: (url: string) => Promise; rateLimiter?: RateLimiter; metricsCollector?: MetricsCollector; logger?: Logger; middleware?: MiddlewareManager; deduplicator?: QueryDeduplicator; debugEnabled: boolean; debugLogger?: { debug: (message: string, metadata?: Record) => void; info: (message: string, metadata?: Record) => void; warn: (message: string, metadata?: Record) => void; error: (message: string, metadata?: Record) => void; }; } export declare class QueryOrchestrator { private readonly config; constructor(config: QueryOrchestratorConfig); queryDomain(domain: string): Promise; queryIP(ip: string): Promise; queryASN(asn: string | number): Promise; queryNameserver(nameserver: string): Promise; queryEntity(handle: string, serverUrl: string): Promise; } //# sourceMappingURL=QueryOrchestrator.d.ts.map