import type { JSX } from 'preact'
import type { Contact } from './src/contact.ts'

export type Mail = {
	from: Contact
	to: Contact[]
	subject: string
	body: JSX.Element
	options: {
		cc: Contact[]
		cci: Contact[]
		attachments: string[]
	}
}

export type Template<
	T extends (props: P) => JSX.Element,
	P extends Record<string, unknown>,
> = {
	name: string
	description: string
	builder: T
	props: {
		name: string
		description: string
		required: boolean
		multiline: boolean
		tag: keyof P
	}[]
}