import { PageData } from "./TaprootPageRenderer"
import { Author } from "./TaprootPluginOptions"

interface TemplateParser {
  FileMatcher: RegExp
  CompileTemplate: (template: string) => Template
}

interface Tag {
  Tag: string
  Url: string
}

interface TemplateData extends Omit<PageData, "Tags" | "Author"> {
  Author?: Author
  Contents: string
  CurrentYear: string
  Head: string
  SiteName: string
  Tags: Array<Tag>
}

interface Template {
  Render: (data: TemplateData) => string
}

export { TemplateParser, Template, TemplateData }
