/** * API Discovery Orchestrator (FUZZ-001) * * Coordinates multiple API discovery strategies: * 1. Fuzzing-based discovery - Probe common API endpoint patterns * 2. OpenAPI spec discovery - Find and parse OpenAPI/Swagger specs * 3. AsyncAPI spec discovery - Find and parse AsyncAPI specs * * This module complements the existing pattern learning by proactively * discovering API endpoints before they're accessed organically. */ import type { LearningEngine } from './learning-engine.js'; /** * Result of probing a single API path */ export interface ProbeResult { url: string; path: string; method: string; statusCode: number; success: boolean; responseTime: number; contentType?: string; error?: string; } /** * Result of fuzzing discovery for a domain */ export interface FuzzingDiscoveryResult { domain: string; baseUrl: string; discoveredEndpoints: ProbeResult[]; successfulEndpoints: ProbeResult[]; failedProbes: number; totalProbes: number; duration: number; patternsLearned: number; } /** * Options for fuzzing-based discovery */ export interface FuzzingDiscoveryOptions { /** Paths to probe (defaults to COMMON_API_PATHS) */ paths?: readonly string[]; /** HTTP methods to test (defaults to TEST_METHODS) */ methods?: readonly string[]; /** Timeout per probe in ms (default: 3000) */ probeTimeout?: number; /** Maximum total discovery time in ms (default: 30000) */ maxDuration?: number; /** Whether to learn patterns from discoveries (default: true) */ learnPatterns?: boolean; /** Custom headers for probes */ headers?: Record; /** Status codes considered successful (default: [200, 201, 301, 302, 307, 308]) */ successCodes?: number[]; } /** * API Discovery Orchestrator * * Coordinates multiple discovery strategies to find API endpoints */ export declare class ApiDiscoveryOrchestrator { private learningEngine?; constructor(learningEngine?: LearningEngine); /** * Discover API endpoints via fuzzing (FUZZ-001) * * Probes common API path patterns to discover endpoints before organic access. * This complements existing pattern learning by proactively finding APIs. * * @param baseUrl - Base URL of the domain (e.g., "https://example.com") * @param options - Discovery options * @returns Discovery results with successful endpoints and learned patterns */ discoverViaFuzzing(baseUrl: string, options?: FuzzingDiscoveryOptions): Promise; /** * Learn API patterns from fuzzing discoveries * * @param domain - Domain where endpoints were discovered * @param discoveries - Successful probe results * @returns Number of patterns learned */ private learnFromDiscoveries; /** * Comprehensive API discovery using all available strategies * * Combines: * - Fuzzing-based discovery (this module) * - OpenAPI spec discovery (existing) * - AsyncAPI spec discovery (existing) * * @param baseUrl - Base URL of the domain * @param options - Discovery options * @returns Combined discovery results */ discoverAll(baseUrl: string, options?: FuzzingDiscoveryOptions): Promise; } //# sourceMappingURL=api-discovery-orchestrator.d.ts.map