import { ComponentType, JSX } from "preact" import { StaticResources } from "../util/resources" import { QuartzPluginData } from "../plugins/vfile" import { GlobalConfiguration } from "../cfg" import { Node } from "hast" export type QuartzComponentProps = { externalResources: StaticResources fileData: QuartzPluginData cfg: GlobalConfiguration children: (QuartzComponent | JSX.Element)[] tree: Node allFiles: QuartzPluginData[] displayClass?: "mobile-only" | "desktop-only" } & JSX.IntrinsicAttributes & { [key: string]: any } export type QuartzComponent = ComponentType & { css?: string beforeDOMLoaded?: string afterDOMLoaded?: string } export type QuartzComponentConstructor = ( opts: Options, ) => QuartzComponent