import type { Nullable } from "@joookiwi/type"; import type { EnumerableWithGrandParent } from "./EnumerableWithGrandParent"; import type { EnumerableWithParent } from "./EnumerableWithParent"; import type { Enumerable } from "./Enumerable"; import type { NameOf, PossibleNameOf } from "./type/nameOf"; import type { PossibleOrdinalOf } from "./type/ordinalOf"; import type { PossibleEnumerableValueOrNameByValueOrCallback } from "./type/possibleInstance"; import { EnumWithParent } from "./EnumWithParent"; /** * An {@link Enum} class in conjuncture with the {@link EnumerableWithGrandParent}. * * Compared to its sibling {@link EnumWithNullableGrandParent}, it does not want `null`. * * It can throw a {@link NullReferenceException} in different scenarios: * - A `null` is received during the construction * - A `null` is interpreted on the {@link EnumWithGrandParent.parent parent} * & {@link EnumWithGrandParent.grandParent grandparent} * - An exception is thrown when attempting to retrieve its {@link CompanionEnumWithGrandParent} * - An exception is thrown when attempting to retrieve the value by {@link CompanionEnumWithGrandParentDeclaration.getValue getValue()} * * @see EnumWithNullableGrandParent */ export declare class EnumWithGrandParent, const GRAND_PARENT extends Enumerable, const ORDINAL extends PossibleOrdinalOf = PossibleOrdinalOf, const NAME extends PossibleNameOf = PossibleNameOf> extends EnumWithParent implements EnumerableWithGrandParent { #private; /** * Create the instance with both {@link EnumerableWithGrandParent.parent parent} * & {@link EnumerableWithGrandParent.grandParent grandparent} references * with the same {@link Enum.name name} as the current instance */ protected constructor(); protected constructor(parent: Nullable); protected constructor(parent: Nullable, grandParent: Nullable); protected constructor(parent: Nullable, grandParentName: Nullable>); protected constructor(parent: Nullable, lateGrandParent: Nullable<() => Nullable>); protected constructor(parent: Nullable, lateGrandParentName: Nullable<() => Nullable>>); protected constructor(parentName: Nullable>); protected constructor(parentName: Nullable>, grandParent: Nullable); protected constructor(parentName: Nullable>, grandParentName: Nullable>); protected constructor(parentName: Nullable>, lateGrandParent: Nullable<() => Nullable>); protected constructor(parentName: Nullable>, lateGrandParentName: Nullable<() => Nullable>>); protected constructor(lateParent: Nullable<() => Nullable>); protected constructor(lateParent: Nullable<() => Nullable>, grandParent: Nullable); protected constructor(lateParent: Nullable<() => Nullable>, grandParentName: Nullable>); protected constructor(lateParent: Nullable<() => Nullable>, lateGrandParent: Nullable<() => Nullable>); protected constructor(lateParent: Nullable<() => Nullable>, lateGrandParentName: Nullable<() => Nullable>>); protected constructor(lateParentName: Nullable<() => Nullable>>); protected constructor(lateParentName: Nullable<() => Nullable>>, grandParent: Nullable); protected constructor(lateParentName: Nullable<() => Nullable>>, grandParentName: Nullable>); protected constructor(lateParentName: Nullable<() => Nullable>>, lateGrandParent: Nullable<() => Nullable>); protected constructor(lateParentName: Nullable<() => Nullable>>, lateGrandParentName: Nullable<() => Nullable>>); /** * Create the instance with a parent & a grandparent from any possible values (in Javascript) * * @param parent The parent value (from any possibilities in Javascript) * @param grandParent The grandparent value (from any possibilities in Javascript) * * @typescriptDefinition */ protected constructor(parent?: PossibleEnumerableValueOrNameByValueOrCallback, grandParent?: PossibleEnumerableValueOrNameByValueOrCallback); /** * The grandparent of the current instance * * @lazy * @throws NullReferenceException An error happened while attempting to retrieve the grandparent value */ get grandParent(): GRAND_PARENT; } //# sourceMappingURL=EnumWithGrandParent.d.ts.map