'use strict';
import { nodeTypes } from '@flint/infra/analysis/function-analysis';
import { TypeFlags } from 'typescript';
import { jsBasicTypes } from '../../../base-repo/constants/basic-types.js';

var __defProp=Object['defineProperty'],__name=(_0x5b9d14,_0x409c59)=>__defProp(_0x5b9d14,'name',{'value':_0x409c59,'configurable':!![]});function getNumberLiteralValue(_0x3910e8){let _0x5ee31c;return _0x3910e8['type']===nodeTypes['literal']&&isNumberType(_0x3910e8['value'])&&(_0x5ee31c=_0x3910e8['value']),_0x3910e8['type']===nodeTypes['unaryExpression']&&_0x3910e8['argument']['type']===nodeTypes['literal']&&isNumberType(_0x3910e8['argument']['value'])&&(_0x3910e8['operator']==='-'&&(_0x5ee31c=-_0x3910e8['argument']['value']),_0x3910e8['operator']==='+'&&(_0x5ee31c=_0x3910e8['argument']['value'])),_0x5ee31c;}__name(getNumberLiteralValue,'getNumberLiteralValue');function isNumberType(_0x141754){return typeof _0x141754===jsBasicTypes['number'];}__name(isNumberType,'isNumberType');function isUnionOfNumberLiterals(_0xd43ec4){return _0xd43ec4['isUnion']()&&_0xd43ec4['types']['every'](_0x1cd647=>(_0x1cd647['flags']&TypeFlags['NumberLiteral'])!==0x9*-0x161+0x22a7+-0xdb*0x1a);}__name(isUnionOfNumberLiterals,'isUnionOfNumberLiterals');

export { getNumberLiteralValue, isNumberType, isUnionOfNumberLiterals };
