/**
 * Hook Request API Router
 *
 * Handles approval requests from Claude Code hooks via WheelHub.
 * Per ADR-0004: All communication converges through WheelHub.
 *
 * Flow:
 * 1. Hook script sends POST /api/hook-request with tool data
 * 2. WheelHub checks allowlist/grants for auto-approval
 * 3. If manual approval needed, broadcasts to WebSocket clients
 * 4. Client shows approval modal, user decides
 * 5. Client sends decision back via WebSocket
 * 6. WheelHub returns HTTP response to hook
 *
 * Story: MSSCI-12409 - Hook consistency and WheelHub consolidation
 */
import { Router } from 'express';
import { WebSocket } from 'ws';
export type HookSeverity = 'safe' | 'normal' | 'destructive';
interface SeverityResult {
    severity: HookSeverity;
    warning?: string;
}
/**
 * Classify the severity of a hook request server-side.
 * Combines tool-name classification with dangerous-path detection.
 */
export declare function classifyHookSeverity(toolName: string, input: Record<string, unknown>): SeverityResult;
export declare function getHookClients(): Set<WebSocket>;
export declare function addHookClient(ws: WebSocket): void;
/**
 * Resolve a pending approval from client response
 */
export declare function resolveApproval(toolId: string, approved: boolean, data?: Record<string, unknown>): boolean;
/**
 * Handle WebSocket message from client
 */
export declare function handleHookWebSocketMessage(ws: WebSocket, message: string): void;
export declare function createHookRequestRouter(): Router;
export {};
//# sourceMappingURL=hook-request.d.ts.map