import { Cast } from '../Any/Cast'; import { List } from '../List/List'; import { Extends } from '../Any/Extends'; import { Select } from '../Union/Select'; import { Exclude } from '../Union/Exclude'; import { Iteration } from '../Iteration/Iteration'; import { IterationOf } from '../Iteration/IterationOf'; import { Pos } from '../Iteration/Pos'; import { Key } from '../Iteration/Key'; import { Append } from '../List/Append'; import { Next } from '../Iteration/Next'; /** * @hidden */ declare type AppendExists = Key extends keyof O ? Append]> : Pos extends keyof O ? Append]> : LN; /** * @hidden */ declare type ___ListOf> = { 0: ___ListOf>, AppendExists, Next>; 1: LN; }[Extends<[K], [never]>]; /** * @hidden */ declare type __ListOf = number extends keyof O ? O[number][] : string extends keyof O ? O[string][] : symbol extends keyof O ? O[symbol][] : ___ListOf>; /** * @hidden */ export declare type _ListOf = __ListOf extends infer X ? Cast : never; /** * Transform an [[Object]] into a [[List]] * (It will only pick numeric literal indexes) * @param O to transform * @returns [[List]] * @example * ```ts * ``` */ export declare type ListOf = O extends unknown ? _ListOf : never; export {};