export declare type MapFunc = (v: T[K], k: K) => R; export declare const forEach: (source: T, func: MapFunc) => void; export declare type PropertyFactory = (k: K) => T[K]; export declare type Factory = { readonly [K in keyof T]-?: PropertyFactory; }; export declare const copyProperty: (value: T) => (k: K) => T[K]; export declare type Mutable = { -readonly [K in keyof T]: T[K]; }; export declare type MutableOptional = { [K in keyof T]?: T[K]; }; /** * Use this functions to assign optional properties. * The function will delete the property `k` if the given value is `undefined`. * * @param mutable an object * @param k a name of property * @param v a property value */ export declare const setMutableProperty: (mutable: MutableOptional, k: K, v: T[K] | undefined) => void; export declare const create: (factory: Factory) => T; export declare type PartialFactory = { readonly [K in keyof T]?: (v: T[K], k: K) => T[K]; }; export declare const copyCreate: (source: T, factory: PartialFactory) => T; export declare const asMutable: (source: T) => Mutable; //# sourceMappingURL=property-set.d.ts.map