//#region extensions/crypto/src/services/webhook-server.d.ts /** * Webhook Server — inbound HTTP server for external event ingestion. * * Accepts webhooks from external services (GitHub, Stripe, monitoring, etc.) * and converts them into event bus events that can trigger plan workflows. * * Security: * - Disabled by default: only starts if OPENCLAWNCH_WEBHOOK_PORT is set * - Binds to localhost (127.0.0.1) by default — set OPENCLAWNCH_WEBHOOK_HOST=0.0.0.0 for external * - Per-route HMAC-SHA256 signature verification (secret per webhook) * - Rate limiting: per-IP and per-route * - Payload size cap: 64KB default * - No direct tool execution — only fires events on the event bus */ interface WebhookServerConfig { port: number; host: string; maxPayloadBytes: number; rateLimitPerMinute: number; } interface WebhookEvent { type: 'webhook_received'; route: string; source: string; payload: unknown; headers: Record; receivedAt: number; } type WebhookEventHandler = (event: WebhookEvent) => void | Promise; declare class WebhookServer { private server; private config; private rateLimiter; private pruneInterval; private handler; constructor(config?: Partial); /** Register the event handler for incoming webhooks. */ onEvent(handler: WebhookEventHandler): void; /** Start the server. Returns false if port is not configured. */ start(): Promise; /** Stop the server. */ stop(): Promise; isRunning(): boolean; getConfig(): WebhookServerConfig; private handleRequest; private readBody; } declare function getWebhookServer(config?: Partial): WebhookServer; declare function resetWebhookServer(): void; //#endregion export { WebhookEvent, WebhookServer, WebhookServerConfig, getWebhookServer, resetWebhookServer }; //# sourceMappingURL=webhook-server.d.mts.map