export interface Sequence { length: number; slice(from: number, to?: number): Sequence; [index: number]: T; } export interface Mapping { has(key: K): boolean; get(key: K): V | undefined; forEach(callback: (value: V, key: K) => void): void; } export type AnyMapping = K extends keyof any ? Record | Mapping : Mapping; export type IntoInterator = Iterable | Iterator | Sequence; export type IntoEntriesIterator = IntoInterator<[K, V]>;