type Comparator = (a: TFirst, b: TSecond) => boolean; /** * Returns a list of intersecting values based on a custom * comparator function that compares elements of both arrays. * * @param array - The source array. * @param other - The second array. * @param comparator - The custom comparator. * @signature * R.intersectionWith(array, other, comparator) * @example * R.intersectionWith( * [ * { id: 1, name: 'Ryan' }, * { id: 3, name: 'Emma' }, * ], * [3, 5], * (a, b) => a.id === b, * ) // => [{ id: 3, name: 'Emma' }] * @dataFirst * @lazy * @category Array */ declare function intersectionWith(array: ReadonlyArray, other: ReadonlyArray, comparator: Comparator): Array; /** * Returns a list of intersecting values based on a custom * comparator function that compares elements of both arrays. * * @param other - The second array. * @param comparator - The custom comparator. * @signature * R.intersectionWith(other, comparator)(array) * @example * R.intersectionWith( * [3, 5], * (a, b) => a.id === b * )([ * { id: 1, name: 'Ryan' }, * { id: 3, name: 'Emma' }, * ]); // => [{ id: 3, name: 'Emma' }] * @dataLast * @lazy * @category Array */ declare function intersectionWith(other: ReadonlyArray, /** * Type inference doesn't work properly for the comparator's first parameter * in data last variant. */ comparator: Comparator): (array: ReadonlyArray) => Array; export { intersectionWith };