-module(glace@internal@glace_types). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export_type([glace_builder/1, route/1, config/1, middleware/1, execute_middleware/0, request/1, logger/0]). -type glace_builder(QJO) :: {glace_builder, integer(), list(route(QJO)), list(middleware(QJO)), list(middleware(QJO)), logger()}. -type route(QJP) :: {route, gleam@http:method(), binary(), fun((request(QJP)) -> gleam@http@response:response(mist:response_data()))}. -type config(QJQ) :: {config, gleam@option:option(integer()), list(route(QJQ))}. -type middleware(QJR) :: {middleware, binary(), fun((request(QJR)) -> {ok, request(QJR)} | {error, gleam@http@response:response(mist:response_data())})}. -type execute_middleware() :: before | 'after'. -type request(QJS) :: {request, gleam@http:method(), list({binary(), binary()}), mist@internal@http:connection(), gleam@http:scheme(), binary(), gleam@option:option(integer()), binary(), gleam@option:option(binary()), gleam@dict:dict(binary(), binary()), QJS, logger()}. -type logger() :: {logger, fun((binary()) -> nil), fun((binary()) -> nil), fun((binary()) -> nil), fun((binary()) -> nil)}.