```typescript
export function mergeIntervals(intervals: number[][]): number[][] {
    /**
     * Merge overlapping intervals while preserving sorted order and producing fresh output.
     */
    if (intervals.length === 0) {
        return [];
    }

    intervals = intervals.map(interval => {
        if (interval[0] > interval[1]) {
            throw new Error('Invalid interval: start is greater than end');
        }
        return interval;
    });

    const merged: number[][] = [intervals[0]];
    for (const current of intervals.slice(1)) {
        const last = merged[merged.length - 1];
        if (current[0] <= last[1]) {
            last[1] = Math.max(last[1], current[1]);
        } else {
            merged.push(current);
        }
    }

    return merged;
}
```