import { type Middleware } from "./deps.js";
import { UnitLike } from "./transform.js";
import type { Range } from "./types.js";
/** Create range request middleware.
 *
 * @example
 * ```ts
 * import { rangeRequest } from "https://deno.land/x/range_request_middleware@$VERSION/middleware.ts";
 * import {
 *   assert,
 *   assertEquals,
 *   assertThrows,
 * } from "https://deno.land/std/testing/asserts.ts";
 *
 * const middleware = rangeRequest();
 * const request = new Request("test:", {
 *   headers: { range: "bytes=5-9" },
 * });
 * const response = await middleware(
 *   request,
 *   () => new Response("abcdefghijklmnopqrstuvwxyz"),
 * );
 *
 * assertEquals(response.status, 206);
 * assertEquals(response.headers.get("content-range"), "bytes 5-9/26");
 * assertEquals(response.headers.get("accept-ranges"), "bytes");
 * assertEquals(await response.text(), "fghij");
 * ```
 */
export declare function rangeRequest(ranges?: Iterable<Range>): Middleware;
export declare function contentRange(ranges?: Iterable<Range>): Middleware;
export declare function acceptRanges(unitLike?: UnitLike): Middleware;
