type EmitFunction<T, K extends keyof T> = (evt: K, ...args: T[K]) => void;
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void
? I
: never;
declare type VueEmit<T> = UnionToIntersection<
{
[K in keyof T]: EmitFunction<T, K>;
}[keyof T]
>;
interface Props {
modelValue?: string;
}
interface Emits {
'update:modelValue': [editorValue?: string];
}
const props = withDefaults(defineProps<Props>(), {});
const emit = defineEmits<Emits>();
useProps(props, emit)
export function useProps(props:Props, emit:VueEmit<Emits>) {}