import { Append, AppendOptional, Concat, Length, List } from "."; type _Init = Length extends 0 ? Acc : L extends readonly [any?] ? Acc : L extends readonly [infer H, ...infer T] ? _Init> : L extends readonly [...infer I, any] ? Concat : L extends { 0?: any; } ? L extends readonly [_?: infer H, ...__: infer T] ? _Init> : Concat : Concat; /** * gets all elements of list `L` except the last one. * * if `L` is empty, returns an empty list. * * @since 0.0.2 * * @example * type e0 = Init // [] * type e1 = Init<[]> // [] * type e2 = Init<[string]> // [] * type e3 = Init // string[] * type e4 = Init<[...string[], number]> // string[] * type e5 = Init<[string, ...number[]]> // [string, ...number] * type e6 = Init<[string, ...number[], boolean]> // [string, ...number] * type e7 = Init<[string?]> // [] * type e8 = Init<[string?, ...number[]]> // [(string | undefined)?, ...number[]] */ export type Init = _Init; export {}; //# sourceMappingURL=init.d.ts.map