export = iceBarrage;
/**
 * @author Frazer Smith
 * @description Iteratively freezes an object and its data properties.
 * Accessor properties are skipped to avoid side effects.
 * This mutates the original object.
 * @template {object} T
 * @param {T} obj - The object, array, or function to be frozen.
 * @returns {Readonly<T>} The frozen object, array, or function.
 * @throws {TypeError} If the argument is not an object, array, or function.
 */
declare function iceBarrage<T extends object>(obj: T): Readonly<T>;
declare namespace iceBarrage {
    export { iceBarrage as default, iceBarrage };
}
