//·························································· // Copyright (c) 2023-2026. Jonathan Bédard ~ JóôòKiwi // // This project is free to use. // All the right is reserved to the author of this project. // My projects: // - https://github.com/joooKiwi/type // - https://github.com/joooKiwi/lazy // - https://github.com/joooKiwi/collection // - https://github.com/joooKiwi/enumeration //·························································· import type {Nullable} from "@joookiwi/type" import type {Enumerable} from "../Enumerable" import type {EnumerableConstructor} from "../EnumerableConstructor" import type {EnumerableWithNullableGrandParent} from "../EnumerableWithNullableGrandParent" import type {EnumerableWithNullableGreatGrandParent} from "../EnumerableWithNullableGreatGrandParent" import type {EnumerableWithNullableParent} from "../EnumerableWithNullableParent" import type {EnumerableWithGrandParent} from "../EnumerableWithGrandParent" import type {EnumerableWithGreatGrandParent} from "../EnumerableWithGreatGrandParent" import type {EnumerableWithParent} from "../EnumerableWithParent" import type {CompanionEnumerableWithGrandParent} from "../companion/CompanionEnumerableWithGrandParent" import type {CompanionEnumerableWithGreatGrandParent} from "../companion/CompanionEnumerableWithGreatGrandParent" import type {CompanionEnumerableWithParent} from "../companion/CompanionEnumerableWithParent" import type {CompanionEnumerableType} from "./companion" import type {NameOf} from "./nameOf" import type {PossibleEnumSymbol} from "./symbol" /** * The possible {@link Enumerable} members by itself * or by an inheritors (in the project) * * @see EnumConstants.ENUMERABLE_WITH_GREAT_GRAND_PARENT_MEMBERS */ export type PossibleEnumerableMembers = | keyof Enumerable | keyof EnumerableWithNullableParent | keyof EnumerableWithParent | keyof EnumerableWithNullableGrandParent | keyof EnumerableWithGrandParent | keyof EnumerableWithNullableGreatGrandParent | keyof EnumerableWithGreatGrandParent /** The possible {@link Enumerable} instances. Either a {@link EnumerableConstructor} or a {@link CompanionEnumerable} */ export type PossibleEnumerableInstance = | CompanionEnumerableType | CompanionEnumerableWithParent | CompanionEnumerableWithGrandParent | CompanionEnumerableWithGreatGrandParent | EnumerableConstructor> /** * A type of {@link Enumerable} by its value or its {@link Enumerable.name name} (object or primitive) * via the {@link Nullable} value itself or a callback returning the {@link Nullable} value */ export type PossibleEnumerableValueOrNameByValue = Nullable<| T | NameOf | String | PossibleEnumSymbol> /** * A type of {@link Enumerable} by its value or its {@link Enumerable.name name} (object or primitive) * via the {@link Nullable} value itself or a callback returning the {@link Nullable} value */ export type PossibleEnumerableValueOrNameByValueOrCallback = Nullable<| T | NameOf | String | PossibleEnumSymbol | (() => Nullable | String | PossibleEnumSymbol>)>