import type { ApplyPlugins, MisinaOptions, MisinaPlugin } from "./types.mjs"; /** * Create a Misina HTTP client. Plugins listed in `options.use` are applied * left-to-right (first innermost, last outermost) and their typed surfaces * are intersected onto the returned client via `ApplyPlugins`. * * @example * ```ts * import { createMisina } from "misina" * import { bearer } from "misina/auth" * import { breaker } from "misina/breaker" * * const api = createMisina({ * baseURL: "https://api.example.com", * retry: 3, * use: [bearer(() => store.token), breaker({ failureThreshold: 5 })], * }) * * api.breaker.state() // typed via the breaker plugin * const { data } = await api.get<{ id: string }>("/users/42") * ``` */ export declare function createMisina[] = []>(options?: MisinaOptions & { use?: TPlugins; }): ApplyPlugins;