import type { HttpMethod, MisinaPlugin, MisinaRequestInit } from "../types.mjs"; export interface DedupeOptions { /** Compute a dedupe key. Default: `${method} ${url}`. */ key?: (input: string, init?: MisinaRequestInit) => string; /** Methods eligible for de-duplication. Default: GET/HEAD/OPTIONS. */ methods?: HttpMethod[]; } /** * Plugin that collapses concurrent identical requests onto a single * in-flight promise. Each waiter receives the same `MisinaResponse` — * `response.raw` is shared, so callers wanting to re-read the body via * `.raw.text()` should clone it first. * * Defaults to safe methods only — de-duping POST is risky. */ export declare function dedupe(opts?: DedupeOptions): MisinaPlugin;