import { render } from "@react-email/render";
import type { ReactElement } from "react";

export interface RenderedEmail {
  html: string;
  text: string;
}

/**
 * Renders any React Email element to both HTML and plaintext fallback simultaneously.
 */
export async function renderEmail(element: ReactElement): Promise<RenderedEmail> {
  const html = await render(element);
  const text = await render(element, { plainText: true });
  return { html, text };
}
