import type { HookRegistry, HookPayload } from "./hook-registry.js"; export interface HookEndpointCtx { reg: HookRegistry; secret: string; remoteAddress: string | undefined; } /** * True if `addr` is a loopback address. Normalizes before comparing: lowercase, * strips the IPv4-mapped `::ffff:` prefix, and accepts `::1` plus the whole * 127.0.0.0/8 range (not just 127.0.0.1). */ export declare function isLoopback(addr: string | undefined): boolean; export declare function handleHookPost(ctx: HookEndpointCtx, providedSecret: string | undefined, body: { jinnSessionId?: string; hook?: HookPayload; }): { status: number; body: string; }; /** Authenticate and validate a hook without delivering it. The API route uses * this seam to classify an authenticated target before HookRegistry effects; * handleHookPost keeps its standalone validate-and-deliver contract. */ export declare function validateHookPost(ctx: HookEndpointCtx, providedSecret: string | undefined, body: { jinnSessionId?: string; hook?: HookPayload; }): { status: number; body: string; } | undefined; //# sourceMappingURL=hook-endpoint.d.ts.map