/** * Shared HTTP helpers for control-plane handlers. */ import type { IncomingMessage, ServerResponse } from 'node:http'; import { type LocaleCode } from 'ysk-server-shared'; export declare const DEFAULT_JSON_BODY_LIMIT = 1048576; export declare const LOGIN_BODY_LIMIT = 262144; export declare function readBody(req: IncomingMessage, opts?: { maxBytes?: number; }): Promise; /** Baseline security headers for all JSON API responses. */ export declare function securityHeaders(): Record; export declare function sendJson(res: ServerResponse, status: number, body: unknown): void; /** sendJson, then wait until the socket has flushed (or a short fallback). */ export declare function sendJsonAndWait(res: ServerResponse, status: number, body: unknown): Promise; /** * Honest HTTP status from ops result. * - ok true → 200 (includes written-only control-plane success) * - blocked / apply_status blocked → 403 * - failed apply missing EXECUTE (ok false + requires*) → 403 * - other ok false → 422 * - notFound option → 404 when !ok */ export declare function statusFromOpsResult(result: { ok?: boolean; blocked?: boolean; requiresExecute?: boolean; requiresRoot?: boolean; dryRun?: boolean; apply_status?: string; }, opts?: { notFound?: boolean; }): number; export type SendOpsOptions = { /** When result is not ok, use 404 instead of 403/422 */ notFound?: boolean; }; /** * Normalize honesty, localize notes/blockMessage, then send JSON with correct status. */ export declare function sendOpsResult(res: ServerResponse, result: object, opts?: SendOpsOptions): void; /** * Heuristic: body looks like an ops result (has ok + notes/blocked/apply_status). */ export declare function looksLikeOpsResult(body: unknown): boolean; export declare function getBearer(req: IncomingMessage): string | undefined; export declare function parseUrl(req: IncomingMessage): URL; /** Locale from Accept-Language (and optional query). */ export declare function localeFromRequest(req: IncomingMessage, url?: URL): LocaleCode; export declare function sendError(res: ServerResponse, err: unknown): void; //# sourceMappingURL=util.d.ts.map