package moonlit:plugin@0.3.0;
/// Host-side bindgen world: identical to `plugin` MINUS wasi:http/outgoing-handler.
/// The vendored 0.2.3 wasi:http WIT lacks the `@unstable` gates wasmtime's bindgen
/// requires, so including wasi:http here fails to compile. wasi:http is linked at
/// runtime via `add_only_http_to_linker_async`; the guest's `plugin` world still
/// imports it, and the outgoing filter is enforced by `WasiHttpHooks::send_request`.
world plugin-host {
import host;
import process;
import wasi:filesystem/types@0.2.3;
import wasi:filesystem/preopens@0.2.3;
import wasi:cli/environment@0.2.3;
import wasi:clocks/wall-clock@0.2.3;
import wasi:clocks/monotonic-clock@0.2.3;
import wasi:random/random@0.2.3;
use types.{json-value, release-context, middleware-result, middleware-info, plugin-metadata};
export describe: func() -> plugin-metadata;
export init: func(plugin-config: json-value) -> result<plugin-metadata, string>;
export list-middlewares: func() -> list<middleware-info>;
export execute: func(middleware: string, ctx: release-context, config: json-value) -> middleware-result;
}