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 { EnumerableWithNullableParent } from "../EnumerableWithNullableParent"; import type { EnumerableWithNullableGreatGrandParent } from "../EnumerableWithNullableGreatGrandParent"; import type { EnumerableWithNullableGrandParent } from "../EnumerableWithNullableGrandParent"; import type { CompanionEnumerable } from "./CompanionEnumerable"; import type { CompanionEnumerableWithGrandParent } from "./CompanionEnumerableWithGrandParent"; import type { CompanionEnumerableWithGreatGrandParent } from "./CompanionEnumerableWithGreatGrandParent"; 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 { CompanionEnumWithGrandParent } from "./CompanionEnumWithGrandParent"; export declare class CompanionEnumWithGreatGrandParent, const ENUM_CONSTRUCTOR extends EnumerableConstructor>, const PARENT_ENUM extends EnumerableWithNullableGrandParent, const PARENT_ENUM_CONSTRUCTOR extends EnumerableConstructor>, const GRAND_PARENT_ENUM extends EnumerableWithNullableParent, const GRAND_PARENT_ENUM_CONSTRUCTOR extends EnumerableConstructor>, const GREAT_GRAND_PARENT_ENUM extends Enumerable, const GREAT_GRAND_PARENT_ENUM_CONSTRUCTOR extends EnumerableConstructor>> extends CompanionEnumWithGrandParent implements CompanionEnumerableWithGreatGrandParent { #private; protected constructor(instance: ENUM_CONSTRUCTOR, parentInstance: PARENT_ENUM_CONSTRUCTOR, grandParentInstance: GRAND_PARENT_ENUM_CONSTRUCTOR, greatGrandParentInstance: GREAT_GRAND_PARENT_ENUM_CONSTRUCTOR); get greatGrandParentInstance(): GREAT_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(greatGrandParentEnumerable: Nullable): this; setDefaultValue(value: Nullable): this; /** * Get a valid value that is a valid {@link EnumerableWithNullableGreatGrandParent} * for the current {@link instance}, {@link parentInstance}, * {@link grandParentInstance} or {@link greatGrandParentInstance} * * @param enumerable The instance to validate * @throws {InvalidEnumerableException} * @throws {NullReferenceException} */ protected _getValidValueByEnumerable(enumerable: Enumerable): ENUM; /** * Get an {@link Enumerable} * by the {@link EnumerableWithNullableGreatGrandParent.greatGrandParent great-grandparent} * or throw a {@link NullReferenceException} if never found * * @param value The {@link Enumerable} to find * @throws {NullReferenceException} */ protected _getValueFromValuesByGreatGrandParent(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(greatGrandParentInstance: Nullable): ValueByName; getValue(value: Nullable | NAME | String | Number | BigIntOrObject | INSTANCE | PARENT_INSTANCE | GRAND_PARENT_INSTANCE | GREAT_GRAND_PARENT_INSTANCE>): ValueBySpecificOrdinal | ValueBySpecificName | INSTANCE | ValueByName | 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(greatGrandParentInstance: Nullable): NameOf; getName(value: Nullable | NAME | String | Number | BigIntOrObject | INSTANCE | PARENT_INSTANCE | GRAND_PARENT_INSTANCE | GREAT_GRAND_PARENT_INSTANCE>): NameByOrdinal | SpecificNameOf | NameOf | 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(greatGrandParentInstance: Nullable): OrdinalOf; getOrdinal(value: Nullable | NAME | String | Number | BigIntOrObject | INSTANCE | PARENT_INSTANCE | GRAND_PARENT_INSTANCE | GREAT_GRAND_PARENT_INSTANCE>): OrdinalByName | SpecificOrdinalOf | OrdinalOf | OrdinalOf | OrdinalOf | OrdinalOf | OrdinalOf; } //# sourceMappingURL=CompanionEnumWithGreatGrandParent.d.ts.map