import type { BigIntOrObject, NullOrUndefined, Nullable, NumericOrObject, StringOrNumericOrObject, StringOrObject, TemplateOrNumber, TemplateOrNumericOrObject } from "@joookiwi/type"; import type { Enumerable } from "../Enumerable"; import type { EnumerableConstructor } from "../EnumerableConstructor"; import type { EnumerableWithNullableGrandParent } from "../EnumerableWithNullableGrandParent"; import type { EnumerableWithNullableParent } from "../EnumerableWithNullableParent"; import type { CompanionEnumerable } from "./CompanionEnumerable"; import type { CompanionEnumerableWithGrandParent } from "./CompanionEnumerableWithGrandParent"; import type { CompanionEnumerableWithParent } from "./CompanionEnumerableWithParent"; import type { ImpossibleNames } from "../type/name"; import type { NameOf, SpecificNameOf } from "../type/nameOf"; import type { OrdinalOf, SpecificOrdinalOf } from "../type/ordinalOf"; import type { NameByOrdinal, OrdinalByName, ValueByName, ValueBySpecificName, ValueBySpecificOrdinal } from "../type/valueBy"; import { CompanionEnumWithParent } from "./CompanionEnumWithParent"; export declare class CompanionEnumWithGrandParent, const ENUM_CONSTRUCTOR extends EnumerableConstructor>, const PARENT_ENUM extends EnumerableWithNullableParent, const PARENT_ENUM_CONSTRUCTOR extends EnumerableConstructor>, const GRAND_PARENT_ENUM extends Enumerable, const GRAND_PARENT_ENUM_CONSTRUCTOR extends EnumerableConstructor>> extends CompanionEnumWithParent implements CompanionEnumerableWithGrandParent { #private; protected constructor(instance: ENUM_CONSTRUCTOR, parentInstance: PARENT_ENUM_CONSTRUCTOR, grandParentInstance: GRAND_PARENT_ENUM_CONSTRUCTOR); get grandParentInstance(): GRAND_PARENT_ENUM_CONSTRUCTOR; get defaultValue(): ENUM; set defaultValue(value: Nullable); setDefaultValue(value: NullOrUndefined): this; setDefaultValue(value: ImpossibleNames): never; setDefaultValue(ordinal: Nullable): this; setDefaultValue(name: Nullable): this; setDefaultValue(enumerable: Nullable): this; setDefaultValue(parentEnumerable: Nullable): this; setDefaultValue(grandParentEnumerable: Nullable): this; setDefaultValue(value: Nullable): this; /** * Get a valid value that is a valid {@link EnumerableWithNullableGrandParent} * for the current {@link instance}, {@link parentInstance} or {@link grandParentInstance} * * @param enumerable The instance to validate * @throws {InvalidEnumerableException} * @throws {NullReferenceException} */ protected _getValidValueByEnumerable(enumerable: Enumerable): ENUM; /** * Get an {@link Enumerable} * by the {@link EnumerableWithNullableGrandParent.grandParent grandparent} * or throw a {@link NullReferenceException} if never found * * @param value The {@link Enumerable} to find * @throws {NullReferenceException} */ protected _getValueFromValuesByGrandParent(value: Enumerable): ENUM; getValue(value: Nullable): never; getValue(ordinal: Nullable): ValueBySpecificOrdinal; getValue(ordinal: Nullable>): ValueBySpecificOrdinal; getValue(ordinal: Nullable): ENUM; getValue(name: Nullable): ValueBySpecificName; getValue(nameOrOrdinal: Nullable): ENUM; getValue(instance: Nullable): INSTANCE; getValue(parentInstance: Nullable): ValueByName; getValue(grandParentInstance: Nullable): ValueByName; getValue(value: Nullable | NAME | String | Number | BigIntOrObject | INSTANCE | PARENT_INSTANCE | GRAND_PARENT_INSTANCE>): ValueBySpecificOrdinal | ValueBySpecificName | INSTANCE | ValueByName | ValueByName | ENUM; getName(value: Nullable): never; getName(ordinal: Nullable): NameByOrdinal; getName(ordinal: Nullable>): NameByOrdinal; getName(ordinal: Nullable): NameOf; getName(name: Nullable): SpecificNameOf; getName(nameOrOrdinal: Nullable): NameOf; getName(instance: Nullable): NameOf; getName(parentInstance: Nullable): NameOf; getName(grandParentInstance: Nullable): NameOf; getName(value: Nullable | NAME | String | Number | BigIntOrObject | INSTANCE | PARENT_INSTANCE | GRAND_PARENT_INSTANCE>): NameByOrdinal | SpecificNameOf | NameOf | NameOf | NameOf | NameOf; getOrdinal(value: Nullable): never; getOrdinal(ordinal: Nullable): SpecificOrdinalOf; getOrdinal(ordinal: Nullable>): SpecificOrdinalOf; getOrdinal(ordinal: Nullable): OrdinalOf; getOrdinal(name: Nullable): OrdinalByName; getOrdinal(nameOrOrdinal: Nullable): OrdinalOf; getOrdinal(instance: Nullable): OrdinalOf; getOrdinal(parentInstance: Nullable): OrdinalOf; getOrdinal(grandParentInstance: Nullable): OrdinalOf; getOrdinal(value: Nullable | NAME | String | Number | BigIntOrObject | INSTANCE | PARENT_INSTANCE | GRAND_PARENT_INSTANCE>): OrdinalByName | SpecificOrdinalOf | OrdinalOf | OrdinalOf | OrdinalOf | OrdinalOf; } //# sourceMappingURL=CompanionEnumWithGrandParent.d.ts.map