import type { ImmutableArray } from "./array.js"; import type { ImmutableObject } from "./object.js"; import type { ImmutableSet } from "./set.js"; /** * Single entry from a map-like object. * - Consistency with `UnknownObject` * - Always readonly. */ export type Entry = readonly [K, T]; /** Extract the type for the value of an entry. */ export type EntryKey = X extends Entry ? Y : never; /** Extract the type for the value of an entry. */ export type EntryValue = X extends Entry ? Y : never; /** Convert an entry back into an object. */ export type EntryObject> = { readonly [E in T as E[0]]: E[1]; }; /** Extract the key from an object entry. */ export declare function getEntryKey([k]: Entry): K; /** Extract the value from an object entry. */ export declare function getEntryValue([, v]: Entry): T; /** Yield the keys of an iterable set of entries. */ export declare function getEntryKeys(input: Iterable>): Iterable; /** Yield the values of an iterable set of entries. */ export declare function getEntryValues(input: Iterable>): Iterable; /** Yield the entries in something that can yield entries. */ export declare function getEntries(...input: (ImmutableSet | Partial> | Iterable>)[]): Iterable>; export declare function getEntries(...input: (ImmutableArray | ImmutableSet | Iterable>)[]): Iterable>; export declare function getEntries(...input: (ImmutableSet | Iterable>)[]): Iterable>;