```ts
export function minimaxPairSum(first: number[], second: number[]): number {
  if (first.length !== second.length || first.length === 0) {
    throw new Error("Invalid input lists");
  }

  first.forEach(num => {
    if (!Number.isInteger(num)) {
      throw new Error("All entries must be integers");
    }
  });

  second.forEach(num => {
    if (!Number.isInteger(num)) {
      throw new Error("All entries must be integers");
    }
  });

  first.sort((a, b) => a - b);
  second.sort((a, b) => b - a);

  let maxPairSum = -Infinity;

  for (let i = 0; i < first.length; i++) {
    const pairSum = first[i] + second[i];
    if (pairSum > maxPairSum) {
      maxPairSum = pairSum;
    }
  }

  return maxPairSum;
}
```