import { type ErrorType, type PromiseResult, type Result } from '../ErrorResult.js'; import type { Logger } from '../Logger.js'; export interface ClientContext { logger: Logger; } export type ContextProvider = () => PromiseResult<{ context: TContext; }, ErrorType>; export interface Operation { readonly name: TName; readonly args: TArgs; readonly modifies: TModifies; readonly resolve: (result: Result) => void; readonly next: () => Promise>; } export type OperationWithoutCallbacks = Omit; export type Middleware = (context: TContext, operation: TOp) => Promise; export declare function executeOperationPipeline, TName, TArgs, TOk, TError extends typeof ErrorType.Generic, TOp extends Operation>(context: TContext, pipeline: TMiddleware[], operation: OperationWithoutCallbacks): PromiseResult; export declare function LoggingClientMiddleware>(context: TContext, operation: TOp): Promise;