/** * Returns tail of tuple. * * ```ts * TupleTail<[1, 2, 3]> => [2, 3] * ``` */ export declare type TupleTail = T extends [any, ...infer R] ? R : never; /** * Returns last of tuple. * * ```ts * TupleLast<[1, 2, 3]> => 3 * ``` */ export declare type TupleLast = T[TupleTail['length']]; /** * A array that has at least one element. */ export declare type NonEmptyArray = [T, ...T[]];