//#region src/Array/replaceLastOrElse.d.ts /** * # replaceLastOrElse * * ```ts * function Array.replaceLastOrElse( * target: readonly T[], * value: NoInfer, * replacement: NoInfer, * orElse: (target: readonly NoInfer[]) => U, * ): readonly T[] | U * ``` * * Replaces the last occurrence of `value` in `target` with `replacement`. If `value` is not found, calls `orElse` with the original array. * * ## Example * * ```ts [data-first] * import { Array } from "@monstermann/array"; * * Array.replaceLastOrElse([1, 2, 3, 2], 2, 9, () => []); // [1, 2, 3, 9] * Array.replaceLastOrElse([1, 2, 3], 4, 9, (arr) => arr); // [1, 2, 3] * ``` * * ```ts [data-last] * import { Array } from "@monstermann/array"; * * pipe( * [1, 2, 3, 2], * Array.replaceLastOrElse(2, 9, () => []), * ); // [1, 2, 3, 9] * * pipe( * [1, 2, 3], * Array.replaceLastOrElse(4, 9, (arr) => arr), * ); // [1, 2, 3] * ``` * */ declare const replaceLastOrElse: { (value: NoInfer, replacement: NoInfer, orElse: (target: readonly NoInfer[]) => U): (target: T[]) => T[] | U; (value: NoInfer, replacement: NoInfer, orElse: (target: readonly NoInfer[]) => U): (target: readonly T[]) => readonly T[] | U; (target: T[], value: NoInfer, replacement: NoInfer, orElse: (target: readonly NoInfer[]) => U): T[] | U; (target: readonly T[], value: NoInfer, replacement: NoInfer, orElse: (target: readonly NoInfer[]) => U): readonly T[] | U; }; //#endregion export { replaceLastOrElse };