import { INumber } from "../types/numbers"; import type { DeserializeNumberHandling, SerializeNumberHandling } from "../TASONSerializerOptions"; /** 线格式 / 别名中的数值标量类型名 */ export declare const NUMBER_TYPE_NAMES: Set; /** 阶段 1:无契约时的有效序列化策略 */ export type EffectiveSerializeNumberHandling = "unsafe-only" | "all" | "none"; /** 阶段 1:无契约时的有效反序列化策略 */ export type EffectiveDeserializeNumberHandling = "unsafe-only" | "all"; export declare function resolveSerializeNumberHandling(handling: SerializeNumberHandling): EffectiveSerializeNumberHandling; export declare function resolveDeserializeNumberHandling(handling: DeserializeNumberHandling): EffectiveDeserializeNumberHandling; export declare function isNumberTypeName(name: string): boolean; export declare function isNumberWrapper(value: unknown): value is INumber; /** * 按反序列化选项对数值 TypeInstance 拆箱。 * 非数值类型原样返回。 */ export declare function unwrapNumberInstance(value: unknown, handling: DeserializeNumberHandling): unknown; export declare function isSafeIntegerBigInt(value: bigint): boolean; /** * serialize:none 时将数值包装 / bigint / Decimal 尽量写成裸字面量。 * 无法安全裸写时返回 null,调用方回退到 TypeName 前缀。 */ export declare function trySerializeNumberAsLiteral(value: unknown): string | null; /** 序列化是否应对数值类型使用 TypeName 前缀(相对 none 的裸写) */ export declare function shouldPrefixNumberType(handling: SerializeNumberHandling): boolean;