import { type NormalizedCrossProjectPolicy } from '@modern-js/server-runtime-extensions/bff-policy'; import { type DispatchEffectBffRequestOptions } from './dispatch.js'; import type { EffectBffOpenApiConfig, EffectDataPlatformValidationOptions } from './handler.js'; import { type EffectApiModule, type EffectBffRequestHandler } from './module.js'; import type { EffectContext } from './operation-context.js'; export { runWithEffectContext, useEffectContext, useOperationContext, } from './context.js'; export * as Config from 'effect/Config'; export * as Effect from 'effect/Effect'; export { Cookies, Etag, FetchHttpClient, FindMyWay, Headers, HttpBody, HttpClient, HttpClientError, HttpClientRequest, HttpClientResponse, HttpEffect, HttpIncomingMessage, HttpMethod, HttpMiddleware, HttpPlatform, HttpRouter, HttpServer, HttpServerError, HttpServerRequest, HttpServerRespondable, HttpServerResponse, HttpStaticServer, HttpStatus, HttpTraceContext, Multipart, MultipartParser, Template, Url, UrlParams, } from 'effect/http'; export { HttpApi, HttpApiBuilder, HttpApiClient, HttpApiEndpoint, HttpApiError, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, HttpApiSecurity, HttpApiTest, OpenApi, } from 'effect/http-api'; export * as Layer from 'effect/Layer'; export * as Option from 'effect/Option'; export { Rpc, RpcClient, RpcClientError, RpcGroup, RpcMessage, RpcMiddleware, RpcSchema, RpcSerialization, RpcServer, RpcTest, RpcWorker, Utils, } from 'effect/rpc'; export * as Schema from 'effect/Schema'; export type { EffectApiClientFromApi, EffectBffDefinition, EffectBffHandlerFactory, EffectBffOpenApiConfig, EffectBffRuntime, EffectDataPlatformBatchOptions, EffectDataPlatformSelectionValidationOptions, EffectDataPlatformValidationOptions, EffectRequestValidator, EffectRpcBffDefinition, EffectRpcBffHandlerFactory, EffectRpcBffHandlerOptions, EffectRpcRuntimeLayer, EffectRpcSerialization, EffectRuntimeLayer, EffectRuntimeRequirements, } from './handler.js'; export { createHttpApiHandler, defineEffectBff, defineEffectRpcBff, } from './handler.js'; export { type CreateEffectOperationContextOptions, createEffectOperationContext, type EffectContext, } from './operation-context.js'; export type EffectBffEdgeDispatchOptions = Omit; export type EffectBffEdgeHandlerOptions = { module: EffectApiModule; prefix?: string; openapi?: EffectBffOpenApiConfig; dataPlatform?: EffectDataPlatformValidationOptions; crossProjectPolicy?: NormalizedCrossProjectPolicy; onError?: (error: unknown, context: EffectContext) => Promise | Response; onWarning?: (message: string) => void; }; export declare function dispatchEffectBffRequest(handler: EffectBffRequestHandler, request: Request, options?: EffectBffEdgeDispatchOptions): Promise; export declare function createEffectBffEdgeDispatcher(options: EffectBffEdgeHandlerOptions): Promise<{ dispatch: (request: Request, dispatchOptions?: Omit) => Promise; dispose: () => Promise; }>; export declare const createEffectBffTestHandler: typeof createEffectBffEdgeHandler; export declare function createEffectBffEdgeHandler(options: EffectBffEdgeHandlerOptions): Promise<{ handler: (request: Request, dispatchOptions?: Omit) => Promise; dispose: () => Promise; }>;