export declare type NextFn<T extends any[] = any[], K extends () => any = () => any, U = any> = (...data: [...T, K]) => U;
export default function compose<T extends any[] = any[], U = any>(middleware: NextFn<T>[]): (data: T, next?: NextFn<T, () => U, U> | undefined) => U;
