You are given a function `validateEmail(email: string): boolean` that takes an email address as a parameter and returns `true` if the email address is valid, and `false` otherwise. Your task is to implement a new function `filterEmails(emails: string[]): string[]` that takes an array of email addresses and returns a new array containing only the valid email addresses. The function should also throw an exception if any of the email addresses contain special characters or numbers. Write the function `filterEmails(emails: string[]): string[]` to solve this task.

**Function Signature:** `filterEmails(emails: string[]): string[]`

**Input**
- The `emails` parameter is an array of strings representing email addresses.

**Output**
- The function should return a new array containing only the valid email addresses.
- If any of the email addresses contain special characters or numbers, the function should throw an exception.

**Example**
```javascript
filterEmails(["john@gmail.com", "jane@gmail.com", "test123", "test!@#$"]) => ["john@gmail.com", "jane@gmail.com"]
filterEmails(["test1@", "test2@", "test3@"]) => throws an exception
```
b877e4dd-5ef4-4f6a-9fe7-d4f776aa0785
Se te da una función `validateEmail(email: string): boolean` que toma una dirección de correo electrónico como parámetro y devuelve `true` si la dirección de correo electrónico es válida, y `false` en caso contrario. Tu tarea es implementar una nueva función `filterEmails(emails: string[]): string[]` que toma un array de direcciones de correo electrónico y devuelve un nuevo array que contiene solo las direcciones de correo electrónico válidas. La función también debería lanzar una excepción si alguna de las direcciones de correo electrónico contiene caracteres especiales o números. Escribe la función `filterEmails(emails: string[]): string[]` para resolver esta tarea.

**Firma de la función:** `filterEmails(emails: string[]): string[]`

**Entrada**
- El parámetro `emails` es un array de strings que representan direcciones de correo electrónico.

**Salida**
- La función debe devolver un nuevo array que contenga solo las direcciones de correo electrónico válidas.
- Si alguna de las direcciones de correo electrónico contiene caracteres especiales o números, la función debe lanzar una excepción.

**Ejemplo**
```javascript
filterEmails(["john@gmail.com", "jane@gmail.com", "test123", "test!@#$"]) => ["john@gmail.com", "jane@gmail.com"]
filterEmails(["test1@", "test2@", "test3@"]) => lanza una excepción
```
submitted
Se te da una función `validateEmail(email: string): boolean` que toma una dirección de correo electrónico como parámetro y devuelve `true` si la dirección de correo electrónico es válida, y `false` en caso contrario. Tu tarea es implementar una nueva función `filterEmails(emails: string[]): string[]` que toma un array de direcciones de correo electrónico y devuelve un nuevo array que contiene solo las direcciones de correo electrónico válidas. La función también debería lanzar una excepción si alguna de las direcciones de correo electrónico contiene caracteres especiales o números. Escribe la función `filterEmails(emails: string[]): string[]` para resolver esta tarea.

**Firma de la función:** `filterEmails(emails: string[]): string[]`

**Entrada**
- El parámetro `emails` es un array de strings que representan direcciones de correo electrónico.

**Salida**
- La función debe devolver un nuevo array que contenga solo las direcciones de correo electrónico válidas.
- Si alguna de las direcciones de correo electrónico contiene caracteres especiales o números, la función debe lanzar una excepción.

**Ejemplo**
```javascript
filterEmails(["john@gmail.com", "jane@gmail.com", "test123", "test!@#$"]) => ["john@gmail.com", "jane@gmail.com"]
filterEmails(["test1@", "test2@", "test3@"]) => lanza una excepción
```
{"evolved_from": "You are provided with a code snippet that implements the `getUser()` method in a class. This method takes a string parameter `username` and returns a `User` object based on certain conditions. Your task is to refactor the code, eliminating duplication and adding a new requirement. The refactored code should throw an exception if the `username` parameter contains special characters or numbers. Write a function `refactorCode(username: string): User|null` that handles this refactoring. The function should return a `User` object if any conditions are met, return `null` if no conditions match, and throw an exception if the `username` contains special characters or numbers.\n\n**Function Signature:** `refactorCode(username: string): User|null`\n\n**Input**\n- The `username` parameter is a string representing the username for which the user object needs to be returned.\n\n**Output**\n- The function should return a `User` object if any of the conditions in the code snippet match.\n- If none of the conditions match or if the `username` parameter contains special characters or numbers, the function should return `null`.\n- If the `username` parameter contains special characters or numbers, the function should throw an exception.\n\n**Example**\n```javascript\nrefactorCode(\"john\") => null\nrefactorCode(\"jane\") => instance of User\nrefactorCode(\"123\") => throws an exception\nrefactorCode(\"@#$\") => throws an exception\n```", "kind": "synthetic", "source": "argilla/distilabel-evol-prompt-collective"}