import type { NumberEnum, StringEnum } from './types'; /** * Returns all String keys of a number-enum. */ export declare function _numberEnumKeys(en: T): (keyof T)[]; /** * Returns all Number values of a number-enum. */ export declare function _numberEnumValues(en: T): T[keyof T][]; /** * Returns all String keys of a string-enum. */ export declare function _stringEnumKeys(en: T): (keyof T)[]; /** * Returns all String values of a string-enum. */ export declare function _stringEnumValues(en: T): T[keyof T][]; /** * Returns all number-enum "entries", where entry is a tuple of [key, value], * where key is a String key, value is a Number value, typed as Enum itself. * * Doesn't work on String-enums! */ export declare function _numberEnumEntries(en: T): [k: keyof T, v: T[keyof T]][]; /** * Like _numberEnumEntries, but reversed. * So, keys are Numbers, values are Strings. */ export declare function _numberEnumEntriesReversed(en: T): [k: T[keyof T], v: keyof T][]; /** * Like _numberEnumEntries, but as a Map. * Keys are Strings, values are Numbers. */ export declare function _numberEnumAsMap(en: T): Map; /** * Like _numberEnumEntriesReversed, but as a Map. * Keys are Numbers (actual Numbers, because it's a Map, not an Object), values are Strings. */ export declare function _numberEnumAsMapReversed(en: T): Map; /** * Returns all string-enum "entries", where entry is a tuple of [key, value], * where key is a String key, value is a String value, typed as Enum itself. * * Doesn't work on Number-enums! */ export declare function _stringEnumEntries(en: T): [k: keyof T, v: T[keyof T]][]; /** * Like _stringEnumEntries, but keys and values are reversed. */ export declare function _stringEnumEntriesReversed(en: T): [k: T[keyof T], v: keyof T][]; /** * Return String enum as Map (with the same keys and values). */ export declare function _stringEnumAsMap(en: T): Map; /** * Return String enum as Map, with keys and values reversed. */ export declare function _stringEnumAsMapReversed(en: T): Map; /** * Allows to return a Number enum value (typed as Enum itself) based on it's String key. * e.g: * const v = SomeEnum['stringKey'] * // v is of type SomeEnum, which is of type Number * * Throws if value is not found! */ export declare function _numberEnumValue(en: T, k: keyof T): T[keyof T]; /** * _numberEnumKey, but allows to get/return undefined output. */ export declare function _numberEnumValueOrUndefined(en: T, k: keyof T | undefined): T[keyof T] | undefined; /** * Takes number or string enum input, returns normalized Enum output (Number). * Only works for number enums. * * Throws if value is not found! */ export declare function _numberEnumNormalize(en: T, v: string | number): T[keyof T]; /** * Same as _numberEnumNormalize, but allows to return undefined values. */ export declare function _numberEnumNormalizeOrUndefined(en: T, v: string | number | undefined): T[keyof T] | undefined; /** * Returns a String key for given NumberEnum value, or undefined if not found. */ export declare function _numberEnumKeyOrUndefined(en: T, v: T[keyof T] | undefined | null): keyof T | undefined; /** * Returns a String key for given NumberEnum value, throws if not found. */ export declare function _numberEnumKey(en: T, v: T[keyof T] | undefined | null): keyof T; export declare function _stringEnumKeyOrUndefined(en: T, v: string | undefined | null): keyof T | undefined; export declare function _stringEnumKey(en: T, v: string | undefined | null): keyof T;