import { q as IsNumber, u as IsDecimal, s as IsNegative, p as IsZero } from './chunks/DZEfmVOc.js'; import './BooleanAnd.js'; import './BooleanOr.js'; import './MaybeReadonly.js'; /** Private type to build tuple */ type BuildTuple = T extends { length: L; } ? T : BuildTuple; /** * A 1-dimensional tuple of length `L` of elements of type `U`. * * @template L The length of the tuple. * @template U The type of the elements. * @template T Tuple (optional and used for recursion). * @returns A tuple of `U` with length `L`. * @example Tuple<3, string> // [string, string, string] */ type Tuple = IsNumber extends true ? U[] : IsDecimal extends true ? never : IsNegative extends true ? never : IsZero extends true ? [] : T extends { length: infer N; } ? L extends N ? Tuple, U, [...T, U]> : BuildTuple : T; export type { Tuple };