export declare class TypeSafetyUtils {
    private static readonly VALID_BOOLEAN_STRINGS;
    /** Ensures a type-safe boolean tri-state value `true|false|undefined`,
     * using the `toBoolean()` method on this class.
     *
     * For defined values, performs a hard data conversion to a boolean (not just a cast or a Boolean() call).
     *
     * Converts strings to lowercase while determining and throws if value is anything other than null, undefined, or a valid boolean string ("true", "false", "yes", "no", "0", "1").
     *
     * *This method reflects one of the myriad idiosyncracies of typescript: in this case that there's
     * no reliable built-in converter function (like a `boolean.tryParse()`) for booleans,
     * and we have to waste time and performance rolling and importing and calling our own #$!*$%!@^!!*     */
    static toTriState(value: any): boolean | undefined;
    /** Performs a hard data conversion to a boolean (not just a cast or a Boolean() call).
     *
     * Converts strings to lowercase while determining and throws if value is not a valid boolean string ("true", "false", "yes", "no", "0", "1").
     *
     * *This method reflects one of the myriad idiosyncracies of typescript: in this case that there's
     * no reliable built-in converter function (like a `boolean.tryParse()`) for booleans,
     * and we have to waste time and performance rolling and importing and calling our own #$!*$%!@^!!*     */
    static toBoolean(value: any): boolean;
    /** Determines whether the given string is a valid member of the given enum definition. */
    static isEnum(enumDef: object, entry: string | undefined): boolean;
    /** Converts to the given enum value based on comparison of enum VALUE (NOT enum property name).
     * Returns undefined when not recognized.
     *
     * DEVNOTE:  Replaces hasty syntax:
     * ```
     * const asEnum = (str) ? (<any>MyEnum)[str] : undefined;
     * ```
     */
    static toEnum<T>(enumDef: object, entry: string | undefined): T | undefined;
    /** Converts to the given enum value based on comparison of enum VALUE (NOT enum property name).
   * Returns undefined when not recognized.
   *
   * DEVNOTE:  Replaces hasty syntax:
   * ```
   * const asEnum = (str) ? (<any>MyEnum)[str] : undefined;
   * ```
   */
    static toEnum_ts<T extends {
        [key: string]: string;
    }>(enumObj: T, str: string | undefined): T[keyof T] | undefined;
}
