import type { HTMLAttributes, PropType, VNode } from 'vue';
import type { ComponentPublicInstance, VNodeRef } from "vue";
export type VueJsxNodeSingle = VNode | string | boolean | number;
export type VueJsxNode = VNode | string | boolean | number | JSX.Element | Element | VueJsxNode[];
export type VueHTMLAttributes = HTMLAttributes & {
key?: string | number | symbol;
ref?: VNodeRef;
ref_for?: boolean;
ref_key?: string;
} & {
checked?: boolean;
disabled?: boolean;
type?: string;
};
export type RefElement = Element | ComponentPublicInstance | null;
export type RemoveIndexSignature = {
[K in keyof T as K extends `${infer _}` ? K : never]: T[K];
};
export type IsOptional = {} extends Pick ? true : false;
export type CombineProps = {
[K in keyof Required]: IsOptional extends true ? ({
type: PropType;
default?: any;
required?: false;
} | PropType) : ({
type: PropType;
default?: any;
required: true;
});
};