/**
 * Creates a shallow-cloner function that ensures (hopefully) that the properties
 * end up into the in-object storage. Offers better performance than Object.assign
 * and saves memory.
 *
 * Read more at:
 * https://mrale.ph/blog/2014/07/30/constructor-vs-objectcreate.html
 *
 * @param {T} template The template object that
 * @returns {(function(T):T) & { properties: string[] }}
 * @template {object} [T=object]
 */
export default function createCloner<T extends object = object>(template: T): ((arg0: T) => T) & {
    properties: string[];
};
/**
 * Needed for proxied Apache Arrow tables.
 *
 * @param {object} obj
 */
export function getAllProperties(obj: object): string[];
//# sourceMappingURL=cloner.d.ts.map