/**
 * Creates a deep copy of **arr** that is also deeply frozen.
 *
 * @param arr The 3-dimensional array to create a deeply frozen copy of.
 *
 * @returns A deeply frozen copy of **arr**.
 *
 * @see {@link deepCopy}
 * @see {@link deepFreeze}
 */
declare function safeCopy<T>(arr: readonly (readonly (readonly T[])[])[]): readonly (readonly (readonly Readonly<T>[])[])[];
/**
 * Creates a deep copy of **arr** that is also deeply frozen.
 *
 * @param arr The 2-dimensional array to create a deeply frozen copy of.
 *
 * @returns A deeply frozen copy of **arr**.
 *
 * @see {@link deepCopy}
 * @see {@link deepFreeze}
 */
declare function safeCopy<T>(arr: readonly (readonly T[])[]): readonly (readonly Readonly<T>[])[];
/**
 * Creates a deep copy of **arr** that is also deeply frozen.
 *
 * @param arr The 1-dimensional array to create a deeply frozen copy of.
 *
 * @returns A deeply frozen copy of **arr**.
 *
 * @see {@link deepCopy}
 * @see {@link deepFreeze}
 */
declare function safeCopy<T>(arr: readonly T[]): readonly Readonly<T>[];
/**
 * Creates a deep copy of **obj** that is also deeply frozen.
 *
 * @param obj The object to create a deeply frozen copy of.
 *
 * @returns A deeply frozen copy of **obj**.
 *
 * @see {@link deepCopy}
 * @see {@link deepFreeze}
 */
declare function safeCopy<T>(obj: T): Readonly<T>;
export { safeCopy };
