import { TareOption, WeightUnit } from './types';
import type { SkuValue as SkuValueBase } from '../../../../plus/skuOptionsSelection/types';
export declare const CUSTOM_TARE_STORAGE_KEY = "pisell-weighing-custom-tares";
export declare const DEFAULT_TARE_STORAGE_KEY = "pisell-weighing-default-tare";
/** 插件返回 3 位小数精度，展示与其保持一致。 */
export declare const formatWeight: (value: number) => string;
/** @param symbol 货币符号，默认 '$' */
export declare const formatMoney: (value: number, symbol?: string) => string;
export declare const getScaleTag: (status: string, error: string) => "Error" | "Stable" | "Unstable" | "Overload" | "Listening";
/** 过滤非数字字符，保证只有一个小数点。 */
export declare const sanitizeManualWeight: (value: string) => string;
/**
 * 为 initialValue.tare 还原项生成确定性 ID，保证 customTareOptions 初始化与
 * selectedTare 初始化使用同一个 ID，不需要在两处传递中间状态。
 */
export declare const getRestoredTareId: (tare: {
    label: string;
    value: number;
}) => string;
export declare const readCustomTares: () => TareOption[];
export declare const readDefaultTareId: () => string | undefined;
export declare const PRODUCT_TARE_MAP_KEY = "pisell-weighing-product-tare-map";
/**
 * 构造商品 + 规格的皮重偏好存储 key。
 * 无 variantId 时 key 形如 `{productId}:`，有 variantId 时形如 `{productId}:{variantId}`。
 */
export declare const getProductTareKey: (productId: number, variantId?: number | null) => string;
/**
 * 读取商品皮重偏好映射表（productKey → tareId）。
 */
export declare const readProductTareMap: () => Record<string, string>;
/**
 * 保存某个商品 + 规格的皮重偏好。
 */
export declare const saveProductTarePref: (productKey: string, tareId: string) => void;
/** 每种重量单位对应的展示缩写。 */
export declare const UNIT_LABEL: Record<WeightUnit, string>;
/**
 * 判断商品是否为称重商品（按重量计价，依赖秤读数结算）。
 * 对应后台字段 open_sold_weight === 1。
 */
export declare const isWeighingProduct: (productData: unknown) => boolean;
/**
 * 按 variantId 在 productData.variant[] 中定位当前选中的 variant，
 * 若存在则返回 variant 级数据，否则降级到商品根级。
 *
 * 用于称重相关字段（open_sold_weight / unit / unit_value）的数据源解析，
 * 确保多规格商品中每个 variant 可以独立配置称重信息。
 */
export declare const resolveWeighingSource: (productData: unknown, variantId?: number | null) => Record<string, unknown>;
export declare const getWeighedUnitPrice: (params: {
    weighedTotalAmount: number;
    productData: unknown;
    skuValue: SkuValueBase;
}) => number;
