import { EmitFnToProps, ExposedToProps, HomomorphicOmit, NodeChild, NodeRef, SlotsToProps } from "./types.js"; import { Block, Fragment, Suspense, SuspenseProps, TeleportProps, VaporComponentInstance, VaporTeleport } from "vue"; //#region src/h.d.ts type HTMLElementEventHandler = { [K in keyof HTMLElementEventMap as `on${Capitalize}`]?: (ev: HTMLElementEventMap[K]) => any; }; type ReservedProps$1 = { key?: () => PropertyKey; }; type RawProps = Record & ReservedProps$1; type RawNodeChild = NodeChild RawNodeChild)>; type RawSlot = (...args: any[]) => RawNodeChild; type RawChildren = RawNodeChild | RawSlot; type RawSlots = Record; type VaporHType = string | typeof Fragment | typeof Suspense | typeof VaporTeleport | ((...args: any[]) => any) | (new (...args: any[]) => VaporComponentInstance); type ResolveProps = T extends Record ? { [K in keyof T]: T[K] | (() => T[K]); } : T; type ResolveSlots = T extends ((...args: infer Args) => any) ? (...args: Args) => RawNodeChild : T extends Record ? { [K in keyof T]?: ResolveSlots; } : RawNodeChild; type VaporHArgs = T extends string ? [props?: (RawProps & { ref?: NodeRef; } & (T extends keyof HTMLElementTagNameMap ? HTMLElementEventHandler : {})) | null, children?: T extends keyof HTMLElementTagNameMap ? RawChildren : RawChildren | RawSlots] : T extends typeof Fragment ? [props?: ReservedProps$1 | null, children?: RawChildren] : T extends typeof Suspense ? [props?: (RawProps & SuspenseProps) | null, children?: RawChildren | RawSlots] : T extends typeof VaporTeleport ? [props: RawProps & TeleportProps, children: RawChildren | RawSlots] : T extends (new (...args: any[]) => infer Instance) ? Instance extends VaporComponentInstance ? [props?: (ResolveProps> & ExposedToProps ? VaporComponentInstance : NonNullable>) | null, children?: SlotsToProps extends (infer SlotsProps) ? 'v-slots' extends keyof SlotsProps ? ResolveSlots : RawChildren | RawSlots : RawChildren | RawSlots] : [] : T extends ((props: infer Props, ctx: { slots: infer Slots extends Record; expose: (exposed: infer Exposed extends Record) => void; attrs: any; emit: infer Emit; }) => any) ? [props?: (ResolveProps & EmitFnToProps & ExposedToProps) | null, children?: SlotsToProps extends (infer SlotsProps) ? 'v-slots' extends keyof SlotsProps ? ResolveSlots : RawChildren | RawSlots : RawChildren | RawSlots] : never; export declare function vaporH(type: T, ...[props, children]: VaporHArgs): any; //#endregion