type Reverse = T extends [infer First, ...infer Rest] ? [...Reverse, First] : T; export declare function reverseArgs(fn: Fn): (...args: Reverse>) => ReturnType; export declare function partial< T extends unknown[], U extends unknown[], R >(fn: (...args: [...T, ...U]) => R, ...presetArgs: T): (...laterArgs: U) => R; export declare function partial< T extends Record, P extends Partial >(fn: (args: T) => unknown, presetArgs: P): (laterArgs: Omit) => ReturnType; export {};