import { type ContextProvider } from '../utils.js';
/** Wraps an async method in a new RequestContext, forking the EntityManager (TC39 decorator). */
export declare function CreateRequestContext<T extends object>(
  contextProvider?: ContextProvider<T>,
  respectExistingContext?: boolean,
): (
  value: (this: T, ...args: any) => any,
  context: ClassMethodDecoratorContext<T>,
) => (this: T, ...args: any[]) => Promise<any>;
/** Like `@CreateRequestContext`, but reuses an existing RequestContext if one is available (TC39 decorator). */
export declare function EnsureRequestContext<T extends object>(
  context?: ContextProvider<T>,
): (
  value: (this: T, ...args: any) => any,
  context: ClassMethodDecoratorContext<T>,
) => (this: T, ...args: any[]) => Promise<any>;
