import { PlainObject } from "../models.mjs"; //#region src/value/transform.d.ts /** * A callback transform an object's properties */ type TransformCallback = (key: Key, value: Value[Key]) => Value[Key]; /** * A collection of keyed callbacks to transform an object's properties */ type TransformCallbacks = Partial<{ [Key in keyof Value]: (value: Value[Key]) => Value[Key] }>; /** * A transformer function for an object, with predefined callbacks for transforming its properties */ type Transformer = { (value: Value): Value; }; /** * Initialize a transformer for an object with a transformer function * * _Available as `initializeTransformer` and `transform.initialize`_ * * @param transform Transformer function * @returns Transformer */ declare function initializeTransformer(transform: TransformCallback): Transformer; /** * Initialize a transformer for an object with transformer functions * * _Available as `initializeTransformer` and `transform.initialize`_ * * @param transformers Keyed transformer functions * @returns Transformer */ declare function initializeTransformer(transformers: TransformCallbacks): Transformer; /** * Transform and objects properties using a transformer function * * @param value Object to transform * @param transform Transformer function * @returns Transformed object */ declare function transform(value: Value, transform: TransformCallback): Value; /** * Transform and objects properties using a transformer object * * @param value Object to transform * @param transformers Keyed transformer functions * @returns Transformed object */ declare function transform(value: Value, transformers: TransformCallbacks): Value; declare namespace transform { var initialize: typeof initializeTransformer; } //#endregion export { Transformer, initializeTransformer, transform };