import type { OperationDescriptor, OperationLifecycleLike, OperationResultInfo, OperationStartOptions, OperationTicket } from '../types/lifecycle.js'; /** An operation as a module outside the core describes it; the lifecycle fills in the request id. */ export type OperationInput = Omit & { requestId?: string; }; /** * Runs `execute` as one operation of `lifecycle`, or plainly when there is none. Modules that only * take a lifecycle as an option use this, so they depend on its types alone. */ export declare function withLifecycle(lifecycle: OperationLifecycleLike | undefined, operation: OperationInput, options: OperationStartOptions, execute: (ticket: OperationTicket | undefined) => Promise, settle?: (result: T) => OperationResultInfo): Promise;