```typescript
export function parseCsvLine(line: string): string[] {
  if (typeof line !== 'string') {
    throw new Error('Input must be a string');
  }

  const QUOTE = '"';
  let tokenStartIndex = -1;
  let inQuotesToken = false; // Tracks whether the current token is being quoted (or potentially quoted)
  let pendingQuoteCount = 0; // A counter for unescaped quote characters

  return line.trim().split(QUOTE).reduce((result, fieldSegment) => {
    if (fieldSegment.length > 0 && fieldSegment[0] === QUOTE && inQuotesToken || pendingQuoteCount % 2 === 1) {
      pendingQuoteCount++;
    } else if (pendingQuoteCount % 2 === 1) {
      // Found a closing quote for the token in progress
      result.push(fieldSegment);
      inQuotesToken = false;
      pendingQuoteCount = 0; // Reset trailing quotation count for potential nested quotes
    } else if (fieldSegment.length > 0 && fieldSegment[0] === QUOTE /* single quotes are handled as part of a quote token */) {
      throw new Error('Quoted fields must be closed properly');
    } else {
      fieldSegment = inQuotesToken || pendingQuoteCount % 2 === 1 ? fieldSegment.trim() :
                  line.substring(tokenStartIndex, fieldSegment.length + (fieldSegment[0].match(/^\s+/) && fieldSegment.charAt(0).length > 1)).trim();

      if (tokenStartIndex > -1) {
        result[result.length - 1] += ` ${fieldSegment}`;
      } else {
        tokenStartIndex = fieldSegment.lastIndexOf(QUOTE); // Point to the matching start quote to properly handle nested quotes
        inQuotesToken = true; // Set flag that marks next segment as also in quotes (part of quoted text)
        result.push('');
      }
    }

    pendingQuoteCount = fieldSegment.includes('') ? 0 : fieldSegment.split('"').length / 2 - (fieldSegment[0] === QUOTE && fieldSegment.split('').indexOf(QUOTE) > fieldSegment.indexOf('\b')); // Ensure we match properly after handling multi quotes.

    return result;
  }, [] as string[]);
}
```

This solution handles the parsing of CSV lines as described, including nested quotes and ensuring that quoted fields are well-formed.