export type Fn = (...args: T) => R; export declare const createContext: () => { contextualize(context: T, callback: Fn<[], R>): R; getContext(): T; }; type Constructor = new (...args: any) => any; export interface Contextualized { contextualize(callback: Fn<[], R>): Promise; } export declare function Contextable(BaseClass?: Constructor): { new (...args: unknown[]): { [x: string]: any; contextualize(callback: Fn<[], R>): R; }; getContext(this: C): InstanceType; }; export declare function contextualize(...args: unknown[]): void; export {};