import type { Files } from "../../index.js"; import type { AllowedOrigins } from "../router-core/origin.js"; import type { ParsedRequest, ResultModel } from "../router-core/web.js"; import type { SearchPatternLimits } from "../search-matcher.js"; import type { Authorize } from "./authorize.js"; import type { FilesOperation } from "./protocol.js"; import type { CompletionStore, OnUploadComplete, UploadData } from "./upload-complete.js"; export interface HandlerContext { files: Files; /** * Key prefixes the plugins on `files` keep private (`versioning()`'s store, * `softDelete()`'s trash). No client key or list prefix may fall inside one. */ reserved: readonly string[]; /** * Storage key → client key for every key this request resolved, so an error * message naming the storage key can be rewritten before it goes out. */ redactions: Map; authorize?: Authorize; operations?: ReadonlySet; allowedOrigins?: AllowedOrigins; secret: string; req: Request; defaultExpiresIn: number; forceDisposition: boolean; maxListLimit: number; maxSearchResults: number; /** Most keys one `search` request walks before it stops with `truncated`. */ maxSearchScan: number; /** Seconds after an upload token expires that `complete` still redeems it. */ completeGracePeriod: number; /** Receives every failure whose message the client doesn't get to see. */ reportError: (error: unknown) => void; maxUploadSize?: number; /** Cap on `keys[]` / `files[]` / `completions[]` in one request. */ maxBatchSize: number; /** Ceiling on a bulk request's client-supplied `concurrency`. */ maxConcurrency: number; /** Complexity bounds on a `search` pattern. */ searchPatternLimits: SearchPatternLimits; downloadMode: "auto" | "redirect" | "proxy"; onUnsupportedRange: "reject" | "ignore"; proxyUrl: (token: string) => string; now: () => number; onUploadComplete?: OnUploadComplete; onRejected: "delete" | "keep"; completions?: CompletionStore; } export declare const dispatch: (ctx: HandlerContext, parsed: ParsedRequest) => Promise; //# sourceMappingURL=handler.d.ts.map