export declare type RefType = Name; export declare type ExcludeObject = { [P in Exclude]?: never; }; export declare type XOR = T | U extends object ? (ExcludeObject & U) | (ExcludeObject & T) : T | U; export declare type Head = T extends [infer U, ...any[]] ? U : T; export declare type Tail = T extends [any, ...infer U] ? (U extends [infer I] ? I : U extends [] ? never : U) : T; export declare type XORArray = T extends [infer U] ? U : T extends [] ? never : XOR, Tail extends any[] ? XORArray> : Tail>;