import type { AppErrorImpl } from '../result/errors.js'; import { type Result } from '../result/result.js'; import type { IUnitMap } from './i-unit-map.js'; /** * THE parser for a boost map (search tuning `boostIds`, `taskHints[i].boostIds`): * values `number | { weight, expectEmpty: true, reason? }` in, the plain * `key → number` map every reader consumes plus the marker ledger out. The UNIT * is the key. * * normalizeUnitMap({ 'knowledge:a': 2, 'knowledge:b': { weight: 3, expectEmpty: true } }, 'boostIds') * → ok({ values: { 'knowledge:a': 2, 'knowledge:b': 3 }, * marks: [{ list: 'boostIds', unit: 'knowledge:b' }] }) * * Refused LOUDLY, each as a `[""]: …` problem: a value that is * neither a number nor a well-formed marker (an older engine silently clamped * such a value to 0), and every marker defect `markerEntryProblems` names. * Clamping stays the reader's job — a marked weight is clamped like a plain one. * Idempotent: a plain map returns `{ values: map, marks: [] }`. */ export declare function normalizeUnitMap(record: unknown, listPath: string): Result; //# sourceMappingURL=normalize-unit-map.d.ts.map