export interface ETagOptions { /** Emit a weak validator (`W/"…"`). Default `true` - it's a content hash, not a byte-for-byte promise. */ readonly weak?: boolean; /** Maximum response bytes to hash. Default `1_000_000`; larger responses pass through unchanged. */ readonly maxBytes?: number; } /** * A {@link defineRouterPlugin} plugin that adds a content-hash `ETag` to `GET` `200` responses and returns * **`304 Not Modified`** when the client's `If-None-Match` matches - saving bandwidth on unchanged * responses. Built on the portable `onResponseBody` tier: the hook receives the final * framework-serialized bytes on every runtime with nothing drained, so the middleware stays on * Node's direct writer. Handler-returned raw `Response`s (streams, proxied fetches) use a capped, * replaying fallback so oversized bodies remain intact. Idempotent. */ export declare function etag(options?: ETagOptions): import("@nifrajs/core").IdentityPlugin; //# sourceMappingURL=etag.d.ts.map