/** * 请求守门族(S-147 切片:`http/server.ts` 4837–5195 + `MAX_BODY` 逐字搬家,正文一字未改)。 * 配额 / 租约 / 用量窗 / 限流 / owner-scope / 体读取 —— 每只守门的判据与它自己的头注原位随行。 * ctx 字段 1 只(`deps`):本族对外围的耦合就这一格,它也是这一族的可测性读数。 */ import type { IncomingMessage, ServerResponse } from "node:http"; import type { FlatServiceDeps } from "./server.js"; export declare function createRequestGuards(ctx: { deps: FlatServiceDeps; }): { quotaExceeded: (req: IncomingMessage, res: ServerResponse) => boolean; ownerCostQuotaDenied: (principal: string | undefined) => { status: number; body: object; } | undefined; ownerFleetLeaseDenied: (owner: string | undefined) => Promise<{ status: number; body: object; } | undefined>; ownerLeaseDenied: (res: ServerResponse, owner: string | undefined) => Promise; ownerQuotaDenied: (res: ServerResponse, owner: string | undefined) => boolean; leaseDenied: (req: IncomingMessage, res: ServerResponse) => Promise; usageWindowDenialFor: (key: string) => Promise<{ status: number; body: { error: string; errorCode: string; retryAfterSec: number; }; retryAfterSec: number; } | undefined>; usageWindowDenied: (req: IncomingMessage, res: ServerResponse) => Promise; rateLimited: (req: IncomingMessage, res: ServerResponse) => boolean; safeDecode: (seg: string) => string | null; isFleetWide: (req: IncomingMessage) => boolean; sessionOwnerScope: (req: IncomingMessage) => { fleetWide: boolean; gateOwner: string | null; }; sessionOwnerScopeForWrite: (req: IncomingMessage) => { fleetWide: boolean; gateOwner: string | null; }; runOwnerOk: (req: IncomingMessage, res: ServerResponse, owner: string | null, notFoundForm?: "run" | "session") => boolean; runSessionAcceptOk: (req: IncomingMessage, res: ServerResponse, run: { sessionId: string | null; }, face: string, notFoundError?: string) => boolean; readJson: (req: IncomingMessage) => Promise; readRawBody: (req: IncomingMessage, max: number) => Promise; }; //# sourceMappingURL=request-guards.d.ts.map