```ts
export function tintMix(volumeA: number, strengthA: number, volumeB: number, strengthB: number): number {
  if (typeof volumeA !== 'number' || typeof strengthA !== 'number' ||
      typeof volumeB !== 'number' || typeof strengthB !== 'number') {
    throw new Error('All inputs must be numbers.');
  }

  if (volumeA < 0 || volumeB < 0) {
    throw new Error('Volume cannot be negative.');
  }

  if (!Number.isInteger(volumeA) || !Number.isInteger(volumeB)) {
    throw new Error('Volume must be an integer.');
  }

  if (!Number.isInteger(strengthA) || !Number.isInteger(strengthB)) {
    throw new Error('Strength must be an integer.');
  }

  if (strengthA < 0 || strengthB < 0) {
    throw new Error('Strength cannot be negative.');
  }

  if (strengthA > 100 || strengthB > 100) {
    throw new Error('Strength cannot exceed 100 percent.');
  }

  const totalVolume = volumeA + volumeB;
  const totalStrength = (volumeA * strengthA + volumeB * strengthB) / totalVolume;

  return Math.floor(totalStrength);
}
```