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 { CompanionEnumerable } from "./CompanionEnumerable"; 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 { CompanionEnum } from "./CompanionEnum"; export declare class CompanionEnumWithParent, const ENUM_CONSTRUCTOR extends EnumerableConstructor>, const PARENT_ENUM extends Enumerable, const PARENT_ENUM_CONSTRUCTOR extends EnumerableConstructor>> extends CompanionEnum implements CompanionEnumerableWithParent { #private; protected constructor(instance: ENUM_CONSTRUCTOR, parentInstance: PARENT_ENUM_CONSTRUCTOR); get parentInstance(): 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(instance: Nullable): this; setDefaultValue(parentInstance: Nullable): this; setDefaultValue(value: Nullable): this; /** * Get a valid value that is a valid {@link EnumerableWithNullableParent} * for the current {@link instance} or {@link parentInstance} * * @param enumerable The instance to validate * @throws {InvalidEnumerableException} * @throws {NullReferenceException} */ protected _getValidValueByEnumerable(enumerable: Enumerable): ENUM; /** * Get an {@link Enumerable} from the {@link values} * by the {@link EnumerableWithNullableParent.parent parent} * or throw a {@link NullReferenceException} if never found * * @param value The {@link Enumerable} to find * @throws {NullReferenceException} */ protected _getValueFromValuesByParent(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(value: Nullable | NAME | String | Number | BigIntOrObject | INSTANCE | PARENT_INSTANCE>): ValueBySpecificOrdinal | ValueBySpecificName | INSTANCE | ValueByName; 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(value: Nullable | NAME | String | Number | BigIntOrObject | INSTANCE | PARENT_INSTANCE>): NameByOrdinal | SpecificNameOf | 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(value: Nullable | NAME | String | Number | BigIntOrObject | INSTANCE | PARENT_INSTANCE>): OrdinalByName | SpecificOrdinalOf | OrdinalOf | OrdinalOf; } //# sourceMappingURL=CompanionEnumWithParent.d.ts.map