import type { call_fn_T } from '../call/index.js' /** * Returns function bound to self that applies arg_a with ...arg_a_ */ export declare function bind_apply_< Self, A extends unknown[] = unknown[], in_A extends unknown[] = unknown[], O = unknown >( fn:call_fn_T, self:Self, in_arg_a?:bind_apply__in_arg_a_T ):(...arg_a:bind_apply__out_arg_a_T)=>O export { bind_apply_ as _bind_apply, bind_apply_ as _apply__bind, } export type bind_apply__in_arg_a_T< A extends unknown[], in_A extends unknown[] > = // eslint-disable-next-line @typescript-eslint/no-unused-vars A extends [...in_A, ...infer out_a] ? in_A : never export type bind_apply__out_arg_a_T< A extends unknown[], in_A extends unknown[] > = A extends [...in_A, ...infer out_A] ? [...in_A, ...out_A] extends A ? out_A : in_A extends unknown[] ? A : never : never