import type { UnionToIntersection } from "../../Utils/index.js"; import type { Param } from "./fix.js"; import type { OrNever } from "./or-never.js"; export declare type Variance = "+" | "-" | "_"; export interface V { Variance: { [v in V]: () => F; }; } export declare type Mix = C extends V ? X[0] : C extends V ? X[number] : C extends V ? X extends [any] ? X[0] : X extends [any, any] ? X[0] & X[1] : X extends [any, any, any] ? X[0] & X[1] & X[2] : X extends [any, any, any, any] ? X[0] & X[1] & X[2] & X[3] : X extends [any, any, any, any, any] ? X[0] & X[1] & X[2] & X[3] & X[4] : X extends [any, any, any, any, any, any] ? X[0] & X[1] & X[2] & X[3] & X[4] & X[5] : UnionToIntersection<{ [k in keyof X]: OrNever; }[keyof X]> : X[0]; export declare type MixStruct = C extends V ? X : C extends V ? Y[keyof Y] : C extends V ? UnionToIntersection<{ [k in keyof Y]: OrNever; }[keyof Y]> : X; export declare type Intro = C extends V ? Fixed : C extends V ? Current : C extends V ? Current : Fixed; export declare type Initial = C extends V ? unknown : C extends V ? never : any; //# sourceMappingURL=variance.d.ts.map