/**
 * Server-side layers for workflow proxy APIs.
 *
 * `layerHttpApi` connects the HTTP API group created by `WorkflowProxy` to the
 * supplied workflows. `layerRpcHandlers` does the same for the generated RPC
 * definitions. Both layers route execute, discard, and resume requests to the
 * matching workflow operation, while the `WorkflowEngine` and workflow handler
 * services stay on the server side.
 *
 * @since 4.0.0
 */
import type { NonEmptyReadonlyArray } from "../../Array.ts";
import * as Layer from "../../Layer.ts";
import type * as HttpApi from "../httpapi/HttpApi.ts";
import type * as HttpApiGroup from "../httpapi/HttpApiGroup.ts";
import type * as Rpc from "../rpc/Rpc.ts";
import type * as Workflow from "./Workflow.ts";
import type { WorkflowEngine } from "./WorkflowEngine.ts";
/**
 * Creates handlers for a workflow HTTP API group, wiring execute, discard, and
 * resume endpoints to the supplied workflows.
 *
 * @category layers
 * @since 4.0.0
 */
export declare const layerHttpApi: <ApiId extends string, Groups extends HttpApiGroup.Any, Name extends HttpApiGroup.Name<Groups>, const Workflows extends NonEmptyReadonlyArray<Workflow.Any>>(api: HttpApi.HttpApi<ApiId, Groups>, name: Name, workflows: Workflows) => Layer.Layer<HttpApiGroup.ApiGroup<ApiId, Name>, never, WorkflowEngine | Workflow.RequirementsHandler<Workflows[number]>>;
/**
 * Creates RPC handlers for the supplied workflows, wiring execute, discard,
 * and resume RPCs to workflow operations.
 *
 * @category layers
 * @since 4.0.0
 */
export declare const layerRpcHandlers: <const Workflows extends NonEmptyReadonlyArray<Workflow.Any>, const Prefix extends string = "">(workflows: Workflows, options?: {
    readonly prefix?: Prefix;
}) => Layer.Layer<RpcHandlers<Workflows[number], Prefix>, never, WorkflowEngine | Workflow.RequirementsHandler<Workflows[number]>>;
/**
 * Union of RPC handler services required to serve the generated workflow
 * execute, discard, and resume RPCs.
 *
 * @category services
 * @since 4.0.0
 */
export type RpcHandlers<Workflows extends Workflow.Any, Prefix extends string> = Workflows extends Workflow.Workflow<infer _Name, infer _Payload, infer _Success, infer _Error> ? Rpc.Handler<`${Prefix}${_Name}`> | Rpc.Handler<`${Prefix}${_Name}Discard`> | Rpc.Handler<`${Prefix}${_Name}Resume`> : never;
//# sourceMappingURL=WorkflowProxyServer.d.ts.map