import type { ComputedRef, DeepReadonly, ExtractPropTypes, Ref } from 'vue' import type { ComponentObjectPropsOptions } from 'vue/types/v3-component-props' export declare type PropRefs = { [K in keyof T]-?: ComputedRef> } export type NotUndefined = T extends undefined ? never : T declare type InferDefault = T extends | null | number | string | boolean | symbol | Function ? T | ((props: P) => T) : (props: P) => T declare type InferDefaults = { [K in keyof T]?: InferDefault> } export declare function withDefaults< PropsWithRefs extends PropRefs>, Defaults extends InferDefaults, Props = { -readonly [K in keyof PropsWithRefs]: PropsWithRefs[K] extends Readonly< Ref > ? K extends keyof Defaults ? NotUndefined : T : PropsWithRefs[K] }, >(props: PropsWithRefs, defaults: Defaults): PropRefs export declare function definePropsRefs( props: PropNames[], ): PropRefs<{ [key in PropNames]: Ref }> export declare function definePropsRefs< PP extends ComponentObjectPropsOptions = ComponentObjectPropsOptions, >(props: PP): PropRefs> export declare function definePropsRefs(): PropRefs