import type { Builtin } from './types/common.js'; import type { AnyRecord } from './types/records.js'; export type NormalizeContext = { original: Readonly; current: OwnerRecordType; data: ContextData; }; export type NormalizerFn = (input: PropertyType, context: NormalizeContext) => PropertyType; export type NormalizersRecord = { readonly [Property in keyof RecordType]?: RecordType[Property] extends Builtin ? NormalizerFn : AnyNormalizer; }; export type AnyNormalizer = NormalizerFn | NormalizersRecord; export type ContextInitializer = (data: OwnerRecordType, normalizers: AnyNormalizer) => ContextData; export declare function normalize(input: Readonly, normalizers: AnyNormalizer>): Data; export declare function normalize(input: Readonly, normalizers: AnyNormalizer, initContextData: ContextInitializer): Data;