/** * @since 1.0.0 */ /** * @since 1.0.0 */ export declare const unifySymbol: unique symbol; /** * @since 1.0.0 */ export type unifySymbol = typeof unifySymbol; /** * @since 1.0.0 */ export declare const typeSymbol: unique symbol; /** * @since 1.0.0 */ export type typeSymbol = typeof typeSymbol; /** * @since 1.0.0 */ export declare const blacklistSymbol: unique symbol; /** * @since 1.0.0 */ export type blacklistSymbol = typeof blacklistSymbol; type MaybeReturn = F extends () => any ? ReturnType : F; type Values = X extends any ? { [k in keyof X[0]]-?: k extends X[1] ? never : MaybeReturn; }[keyof X[0]] : never; type Blacklist = X extends { [blacklistSymbol]?: any; } ? keyof NonNullable : never; type ExtractTypes = X extends any ? [ NonNullable, Blacklist ] : never; type FilterIn = A extends any ? typeSymbol extends keyof A ? A : never : never; type FilterOut = A extends any ? typeSymbol extends keyof A ? never : A : never; /** * @since 1.0.0 */ export type Unify = Values & { [typeSymbol]: A; })>> extends infer Z ? Z | Exclude | FilterOut : never; /** * @since 1.0.0 */ export declare const unify: { , Args2 extends Array, Args3 extends Array, Args4 extends Array, Args5 extends Array, T>(x: (...args: Args) => (...args: Args2) => (...args: Args3) => (...args: Args4) => (...args: Args5) => T): (...args: Args) => (...args: Args2) => (...args: Args3) => (...args: Args4) => (...args: Args5) => Unify; , Args2 extends Array, Args3 extends Array, Args4 extends Array, T>(x: (...args: Args) => (...args: Args2) => (...args: Args3) => (...args: Args4) => T): (...args: Args) => (...args: Args2) => (...args: Args3) => (...args: Args4) => Unify; , Args2 extends Array, Args3 extends Array, T>(x: (...args: Args) => (...args: Args2) => (...args: Args3) => T): (...args: Args) => (...args: Args2) => (...args: Args3) => Unify; , Args2 extends Array, T>(x: (...args: Args) => (...args: Args2) => T): (...args: Args) => (...args: Args2) => Unify; , T>(x: (...args: Args) => T): (...args: Args) => Unify; (x: T): Unify; }; export {}; //# sourceMappingURL=Unify.d.ts.map