```ts
/**
 * Merges multiple sign-in sheets into a single roster without duplicates.
 * @param sheets - An array of arrays, where each inner array contains integer badge numbers in non-decreasing order.
 * @returns A sorted array of unique badge numbers from all sheets.
 */
export function spliceShifts(sheets: number[][]): number[] {
  const mergedSet = new Set<number>();

  for (const sheet of sheets) {
    for (const badge of sheet) {
      mergedSet.add(badge);
    }
  }

  return Array.from(mergedSet).sort((a, b) => a - b);
}
```