import type { IStringifier, IParser } from '../lib/jsonCache.types'; export declare enum TYPE { OBJECT = "0", STRING = "1", NUMBER = "2", BOOLEAN = "3", FUNCTION = "4", UNDEFINED = "5", SYMBOL = "6" } /** * Returns true if the given value's * type need to be skipped during storage. * For ex: Symbol -> Since symbols are private, * we DO NOT encourage them to be stored, hence * we are skipping from storing the same. * * In case you've forked this library and want to * add more type, then this is the place for you 🙂 */ export declare const isSkippedType: (val: any) => boolean; /** * Returns a shorter form of the type of the * value that can be stored in redis. * This also handles custom Classes by using * their constructor names directly. * * @param val Value whose type needs to be computed */ export declare const getTypeOf: (val: any) => (TYPE | string); /** * Returns the stringified version of the given value. * However note that this method needs to take care, * such that special values like undefined, null, false, true * etc are also stringified correctly for storage. * * In case of a custom class / object, this method would * call the provided stringifier (if any available), else * would use `String(val)` * * @param val Value to be evaluated * @param stringifier Custom stringifiers * * @returns Stringified value. If null is returned, then such a value must NOT * be stored */ export declare const getValueOf: (val: any, stringifier?: IStringifier) => string; /** * Converts the given value to the specified type. * Also note that, if a custom className type is * detected, then the provided custom Parser will * be called (if any available), else will return * the value as is. */ export declare const getTypedVal: (type: TYPE | string, val: string, parser?: IParser) => any;