export type AnyFunction = (...args: any[]) => any; export type PropOptions = { default?: T | (() => T); attribute?: boolean }; export type RuntimeContext = { dom: DocumentFragment; element: any; context: any; mount: AnyFunction[]; update: AnyFunction[]; unmount: AnyFunction[]; props: Record; refs: Record; }; export type MountOptions = { template: HTMLTemplateElement; setup?: Function; styles?: CSSStyleSheet[]; shadowDom?: boolean | string | ShadowRootInit; refs?: any[]; }; export type DefineComponentOptions = MountOptions & { name: string; template: HTMLTemplateElement | string; };