export declare type Optional = Omit & Partial>; export declare type Context = { proceed(): Promise | void; } & T; export declare type PureContext = Optional, 'proceed'>; export interface Composed { (ctx: PureContext): Promise | void; } export interface Middleware { (ctx: Context): Promise | void; } export default function compose(middlewareList: Middleware[]): Composed;