/** * Omit Construct and construct signatures * * - Does not work with overloads! */ export type PickConstructNoUnknown_ = _PickConstruct0 | _PickConstruct1 | _PickConstruct2 | _PickConstruct3 | _PickConstruct4; /** * Omit Construct and construct signatures * * - Does not work with overloads! */ export type PickConstructNoUnknown any> = PickConstructNoUnknown_; type _PickConstruct0 = T extends new () => infer R ? new () => R : T extends abstract new () => infer R ? abstract new () => R : never; type _PickConstruct1 = T extends new (a: infer A) => infer R ? unknown extends A ? never : new (a: A) => R : T extends abstract new (a: infer A) => infer R ? unknown extends A ? never : abstract new (a: A) => R : never; type _PickConstruct2 = T extends new (a: infer A, b: infer B) => infer R ? unknown extends B ? never : new (...args: [A]) => R : T extends abstract new (a: infer A, b: infer B) => infer R ? unknown extends B ? never : abstract new (...args: [A]) => R : never; type _PickConstruct3 = T extends new (a: infer A, b: infer B, c: infer C) => infer R ? unknown extends C ? never : new (...args: [A, B]) => R : T extends abstract new (a: infer A, b: infer B, c: infer C) => infer R ? unknown extends C ? never : abstract new (...args: [A, B]) => R : never; type _PickConstruct4 = T extends new (a: infer A, b: infer B, c: infer C, d: infer D) => infer R ? unknown extends D ? never : new (...args: [A, B, C, D]) => R : T extends abstract new (a: infer A, b: infer B, c: infer C, d: infer D) => infer R ? unknown extends D ? never : abstract new (...args: [A, B, C, D]) => R : never; export {}; //# sourceMappingURL=PickConstruct.d.ts.map