import type * as EffectServiceContext from 'effect/Context'; import { type EffectBffOpenApiConfig, type EffectDataPlatformValidationOptions, type EffectRequestValidator, type EffectRpcBffDefinition } from './handler.js'; import type { EffectContext } from './operation-context.js'; export type EffectBffRequestHandler = (request: Request, context?: EffectServiceContext.Context | EffectContext) => Promise | Response; export type EffectBffHandlerFactory = (options?: { openapi?: EffectBffOpenApiConfig; dataPlatform?: EffectDataPlatformValidationOptions; validateRequest?: EffectRequestValidator; }) => { handler: EffectBffRequestHandler; dispose: () => Promise; }; export type EffectApiModule = { api?: unknown; layer?: unknown; rpc?: EffectRpcBffDefinition; handler?: EffectBffRequestHandler; createHandler?: EffectBffHandlerFactory; default?: unknown; }; type LoadedEffectBffHandler = { handler: EffectBffRequestHandler; dispose?: () => Promise; }; type ResolveEffectBffModuleHandlerOptions = { openapi?: EffectBffOpenApiConfig; dataPlatform?: EffectDataPlatformValidationOptions; /** * Server-seam request validator (cross-project policy). Strict Effect * entries forward it into `createHttpApiHandler`, where it applies to * direct, batched and rpc requests. */ validateRequest?: EffectRequestValidator; onWarning?: (message: string) => void; }; export declare function resolveEffectBffModuleHandler(mod: EffectApiModule, options?: ResolveEffectBffModuleHandlerOptions): Promise; export {};